C++语言程序设计

可以把一个一般函数说明为某类的友元函数,也可以将某类的成员函数说明为另类的友元函数。

题目

可以把一个一般函数说明为某类的友元函数,也可以将某类的成员函数说明为另类的友元函数。

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

非成员函数只有在声明为( ),才能访问这个类的所有private成员。

A.内联函数

B.纯虚函数

C.重载函数

D.友元函数


正确答案:D
解析:此属考查的是非成员函数对类的成员的访问权限,非成员函数只有在声明为类的友元函数才能访问这个类的所有private成员,否则是不能访问类的私有成员的。

第2题:

对于友元描述正确的是()

A、友元是本类的成员函数

B、友元不是本类的成员函数

C、友元不是函数

D、友元不能访问本类私有成员


参考答案:B

第3题:

下面对友元的错误描述是()。

A、友元函数不可访问对象的private成员

B、一个类的成员函数可以是另一个类的友元

C、友元类和友元函数均用关键字friend声明

D、友元函数可以访问对象的protected成员


参考答案:A

第4题:

下面关于成员函数重载运算符和友元函数重载运算符相同的是( )。

A.成员函数和友元函数可重载的运算符是不相同的

B.成员函数和友元函数重载运算符时都需要用到this指针

C.成员函数和友元函数重载运算符时都需要声明为公有的

D.成员函数和友元函数重载运算符时的参数可能是相同的


正确答案:A

第5题:

下面关于虚函数的描述,错误的是( )。

A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数

B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚数

C.虚函数可以是另一个类的友元函数,但不能是静态成员函数

D.基类中说明的纯虚函数在其任何派生类中都必须实现


正确答案:B
基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。

第6题:

关于友元的描述中错误的是

A.友元函数可以访问该类的私有数据成员

B.一个类的友元类中的成员函数都是这个类的友元函数

C.友元可以提高程序的运行效率

D.类和类之间的友元关系可以继承


正确答案:D
解析:友员机制就是为了解决对象封装过程中对对象所有内部数据存取都需要通过接口进行的低效率问题,但是破坏了封装性。友员关系是单向且不可继承的。

第7题:

当一个类被说明为另一个类的友元时,它的所有的成员函数都成为另一个类的友元函数。()


参考答案:正确

第8题:

关于友元,下列说法错误的是

A.如果类A是类B的友元,那么类B也是类A的友元

B.如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员

C.友元关系不能被继承

D.如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数


正确答案:A
解析:本题考核友元类和友元函数。友元关系是单向的,并且只在两个类之间有效。即使类X是类Y的友元,类Y是否是类X的友元也要看类X中是否有相应的声明。即友元关系不具有交换性,所以A选项的说法是错误的。类的友元函数可以直接访问该类的所有成员;类A是类B的友元类,那么类A的所有成员函数都是类B的友元函数。

第9题:

将一个函数声明为一个类的友元函数必须使用关键字【 】。


正确答案:friend
friend 解析:本题考核友元函数。定义友元函数的方式是在类定义中用关键字friend说明该函数,其格式为:friend类型>友元函数名>(参数表);

第10题:

以下关于友元函数的叙述不正确的是( )。

A.友元函数提供了类之间数据共享的一个途径

B.一个友元函数可以访问任何类的任何成员

C.友元函数破坏了数据的封装

D.友元函数增加了程序设计的灵活性


正确答案:B
B。【解析】友元函数的作用在于提高程序的运行效率,但是它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。只有在类中声明了某个函数是自己的友元函数之后,该友元函数才能够访问本类的私有成员,而不是任何类的任何成员都可以访问。

更多相关问题