问题 单项选择题

有以下程序:
#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。

选择题
单项选择题 配伍题