itgle.com

下列程序中声明了两个类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: "

题目

下列程序中声明了两个类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


相似考题
更多“下列程序中声明了两个类AA和BB,其中函数“print”是类AA的成员函数,但是类BB的友元函数。 请在①、②和 ”相关问题
  • 第1题:

    下面关于友元函数的描述正确的是( )。

    A.友元函数不能访问类的私有成员

    B.友元函数破坏了类的封装性和隐藏性

    C.友元函数是类的成员函数

    D.友元函数的实现必须在类的内部定义


    正确答案:B
    解析:友元函数说明的位置可在类的任何部位,而友元函数定义则在类的外部,一般与类的成员函数的定义放在一起,类的友元函数可以直接访问该类的所有成员,但它不是类的成员函数。

  • 第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 ) { ...... }


    定义为类 ABC 的函数成员: ABC operator +( ABC obj ) { ...... }

  • 第4题:

    下面对于友元函数描述正确的是

    A.友元函数的实现必须在类的内部定义
    B.友元函数是类的成员函数
    C.友元函数破坏了类的封装性和隐藏性
    D.友元函数不能访问类的私有成员

    答案:C
    解析:

  • 第5题:

    关于类的友元函数说法正确的是

    A.友元函数能访问类的私有数据成员

    B.友元函数能访问类的数据域成员的getter和setter函数

    C.友元函数不能访问类的私有成员

    D.友元函数不能访问类的保护成员

    E.友元函数不能访问类的公有成员


    友元函数能访问类的私有数据成员;友元函数能访问类的数据域成员的getter和setter函数