下列程序中声明了两个类AA和BB,其中函数“print”是类AA的成员函数,但是类BB的友元函数。
请在①、②和⑧处各填入正确的内容,使程序能正常运行。
include<iostream.h>
【 】;
class AA{
int t;
public:
AA(int x){t=x;}
void print(BB &b) ;
};
class BB{
int s;
public:
BB(int y){s=y;}
friend void 【 】 print(BB &);
};
void 【 】
{ cout<<"AA:"<<t<<"BB: "<<w.s<<end1;}<
void main(){
AA m(6);
BB n(8);
m.print(n);
}
输出结果为:AA:6;BB:8
第1题:
下面关于友元函数的描述正确的是( )。
A.友元函数不能访问类的私有成员
B.友元函数破坏了类的封装性和隐藏性
C.友元函数是类的成员函数
D.友元函数的实现必须在类的内部定义
第2题:
关于友元函数的描述中,错误的是
A.友元函数是成员函数,它被说明在类体内
B.友元函数可直接访问类中的私有成员
C.友元函数破坏封装性
D.友元类中的所有成员函数都是友元函数
第3题:
为类A定义重载二目运算符“*”,下列哪种定义形式是正确的?()
A.定义为类A的成员函数:void A:: operator *() { ...... }
B.定义为类A的成员函数:A A:: operator *(A obj1, A obj2 ) { ...... }
C.定义为类A的友元函数:A A:: operator *(A obj ) { ...... }
D.定义为类A的成员函数:A A:: operator *(A obj ) { ...... }
第4题:
第5题:
关于类的友元函数说法正确的是
A.友元函数能访问类的私有数据成员
B.友元函数能访问类的数据域成员的getter和setter函数
C.友元函数不能访问类的私有成员
D.友元函数不能访问类的保护成员
E.友元函数不能访问类的公有成员