有以下程序 #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)<<endl;return 0; } 执行结果是
A.20
B.30
C.900
D.400
参考答案:C
解析: 本题考核友元函数的应用。程序中函数square是类sample的一个友元函数,它可以直接访问类sample的所有成员。它的功能是返回类sample的私有数据成员x的平方。所以程序的执行结果是:900。 注意:友元函数不是类的成员函数,在类外定义时不要加上类名及其作用域运算符(::)。友元函数的调用与一般函数的调用的方式和原理一致,可以在程序的任何地方调用它。