4.2.2 填空题
【例4.6】如果说类B是类A的友元类,则类B的所有成员函数都是类A的 。
解:本题答案为友元函数。
【例4.7】若要把函数void fun()定义为类A的友元函数,则应在类A的定义中加入语句 。
解:把void fun()定义为类A的友元函数,类A定义如下:
- class A
- {
- …
- public:
- friend void fun();
- …
- }
解:本题答案为friend void fun()。
【例4.8】若要把类B定义为类A的友元类,则应在类A的定义中加入语句 。
解:把类B定义为类A的友元类,类A定义如下:
- class A
- { …
- public:
- friend class B;
- …
- }
本题答案为friend class B。
【例4.9】以下程序的执行结果是 。
- #include <iostream.h>
- class Sample
- { int x;
- public:
- Sample() {};
- void setx(int i) { x=i; }
- friend int fun(Sample B[],int n)
- { int m=0;
- for (int i=0;i<n;i++)
- if (B[i].x>m) m=B[i].x;
- return m;
- }
- };
- void main()
- { Sample A[10];
- int Arr[]={90,87,42,78,97,84,60,55,78,65};
- for (int i=0;i<10;i++)
- A[i].setx(Arr[i]);
- cout << fun(A,10) << endl;
- }
解:该程序前面定义了一个类Sample,其中包含一个友元函数friend int fun(Sample B[],int n),它用于将对象数组B中所有元素的x数据成员找出来。在main()函数中定义一个有10个元素的对象数组,并使用for语句给各对象的x赋初值,然后调用fun输出最大者。本程序的执行结果为97。