有以下程序: #include <iostream> using namespace std; class myclass { private: int a, b; public: void i

admin2010-03-29  27

问题 有以下程序:    #include <iostream>    using namespace std;    class myclass    {    private:       int a,  b;    public:       void init( int i,  int j )       {          a = i;          b = j;       }       friend int sum( myclass x );    };    int sum( myclass x )    {       return    x.a + x.b;    }    int main ()    {       myclass y;       y.init( 15,  20 );       cout<<sum( y )<<end1;       return 0;    }    执行后的输出结果是(    )。

选项 A、15
B、20
C、5
D、35

答案1

解析 本题主要考察C++中友元函数的使用。程序中,首先定义一个myclass类,其中包含private类型数据成员int a和int b;并含有成员函数void init(),其功能为初始化数据成员a和b,使其值分别为a=i和b=i;同时声明了一个友元函数 int sum(),其函数定义在类声明体外,功能为返回myclass类的对象中的两个数据成员之和。程序主函数中,首先创建一个myclass类的对象y,并调用y的初始化函数对其变量进行赋值操作,执行该语句后,应该有:y.a=15和y.b=20。程序最后调用函数sum()计算对象y中数据成员的和,由于sum()为类myclass的友元函数,因此其可以自由访问对象y中的数据成员,显然其返回值为:15+20=35。
转载请注明原文地址:https://jikaoti.com/ti/i5W0FFFM
0

最新回复(0)