4.2.2 填空题

2013-10-07 16:21:46 · 作者: · 浏览: 75

4.2.2  填空题

【例4.6】如果说类B是类A的友元类,则类B的所有成员函数都是类A的      。

解:本题答案为友元函数。

【例4.7】若要把函数void fun()定义为类A的友元函数,则应在类A的定义中加入语句      。

解:把void fun()定义为类A的友元函数,类A定义如下:

  1. class A  
  2. {  
  3.     …  
  4. public:  
  5.     friend void fun();  
  6.     …  
  7. }  

解:本题答案为friend void fun()。

【例4.8】若要把类B定义为类A的友元类,则应在类A的定义中加入语句      。

解:把类B定义为类A的友元类,类A定义如下:

  1. class A  
  2. {   …  
  3. public:  
  4.     friend class B;   
  5.     …  
  6. }  

本题答案为friend class B。

【例4.9】以下程序的执行结果是    。

  1. #include <iostream.h> 
  2. class Sample  
  3. {   int x;  
  4. public:  
  5.     Sample() {};  
  6.     void setx(int i) { x=i; }  
  7.     friend int fun(Sample B[],int n)  
  8.     {   int m=0;  
  9.         for (int i=0;i<n;i++)  
  10.             if (B[i].x>m) m=B[i].x;  
  11.         return m;  
  12.     }  
  13. };  
  14. void main()  
  15. {   Sample A[10];  
  16.     int Arr[]={90,87,42,78,97,84,60,55,78,65};  
  17.     for (int i=0;i<10;i++)  
  18.         A[i].setx(Arr[i]);  
  19.     cout << fun(A,10) << endl;  
  20. }  

解:该程序前面定义了一个类Sample,其中包含一个友元函数friend int fun(Sample B[],int n),它用于将对象数组B中所有元素的x数据成员找出来。在main()函数中定义一个有10个元素的对象数组,并使用for语句给各对象的x赋初值,然后调用fun输出最大者。本程序的执行结果为97。