有以下程序: #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
参考答案:A
解析: 本题主要考察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。