问题 单项选择题

以下程序的执行结果是 ( )。
#include <iostream>
using namespace std;
class sample

private:
int x;
public:
sample (int

A.

x=a;

friend double square(sample s);
;
double square(sample s)

return s.x*s.x;

int main ( )

sample s1(20) ,s2(30);
cout<<square (s2) <<end1;
return 0;
A) 20

B.30

C.900

D.400

答案

参考答案:C

解析: 本题考核友元函数的应用。程序中函数square()是类sample的一个友元函数,它可以直接访问类sample的所有成员。它的功能是返回类sample的私有数据成员x的平方。所以程序的执行结果是:900。
注意:友元函数不是类的成员函数,在类外定义时不要加上类名及其作用域运算符 (::)。友元函数的调用与一般函数的调用的方式和原理一致,可以在程序的任何地方调用它。

单项选择题
选择题