C++语言程序设计

友元函数能否访问类中的保护成员?友元函数访问类中私有成员与成员函数访问私有成员的形式相同吗?

题目

友元函数能否访问类中的保护成员?友元函数访问类中私有成员与成员函数访问私有成员的形式相同吗?

参考答案和解析
正确答案: 友元函数能访问类中的保护成员。友元函数访问类中私有成员与成员函数访问私有成员的形式相同。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

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

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

C、友元不是函数

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


参考答案:B

第2题:

一个类的友元函数或友元类可以访问该类的( )。

A.私有成员

B.所有成员

C.保护成员

D.公有成员


正确答案:B
解析:在C++中,如果想让类中的成员数据可以被其他函数访问,可以通过友元函数声明,来共享类中的资源。友元类函数对类的属性和方法的访问能力等同于类的成员函数。

第3题:

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

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

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

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

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


参考答案:A

第4题:

下列关于类的访问权限的描述中,( )是错误的。

A.类中说明为公有的成员可以被程序中的任何代码访问

B.类中说明为私有的成员只能被类的成员函数和说明为友元类的成员函数访问

C.类中说明为保护的成员可以被该类的派生类的成员访问

D.类的对象和类成员函数一样可以访问类的所有成员


正确答案:D
解析:本题考核类成员的访问权限。类成员有3类访问权限:公有(public)、私有(private)和保护(protected)。公有成员是类的对外表现,而私有成员和保护成员是类的内部实现。类的成员函数可以访问类的所有成员,没有任何限制。而类的对象对类的成员的访问是受成员访问控制符制约的。通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。由此可知,选项D的描述是错误的。

第5题:

下列有关类成员的叙述中,正确的是( )。

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

B.类成员的默认访问权限是私有的

C.类成员函数必须声明为公有的

D.类的静态数据成员不能是常成员


正确答案:B
友元函数是指某些虽然不是类成员却能访问类的所有成员的函数,故友元函数不足类的成员函数。类成员的默认访问权限是私有的,类的成员函数¨r以是3种权限中的一种,静态数据成员可以为常成员。故本题答案为8。

第6题:

一个类的友元函数能够访问该类的

A.私有成员

B.保护成员

C.公用成员

D.所有成员


正确答案:D
解析:在一个类的内部声明,并用friend修饰的函数称为该类的友员函数,友员函数可以像成员函数一样,访问类的所有级别的成员。友员机制主要用于提高访问效率,但是破坏了类的封装性原则。在程序中适当使用友员函数,并寻求封装和效率之间的一个平衡点,是使用友员技术的一个主要内容。

第7题:

下列关于成员访问权限的描述中,不正确的是( )。

A.公有数据成员和公有成员函数都可以被类对象直接处理

B.类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问

C.只有类或派生类的成员函数和友元函数可以访问保护成员

D.保护成员在派生类中可以被访问,而私有成员不可以


正确答案:B
解析:类的私有数据成员也可以被类成员函数访问,不管是公有、私有或是保护成员,所以选项B是错误的,其他选项是正确的。

第8题:

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

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

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

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

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


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

第9题:

下面关于友元的描述中,错误的是( )。

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

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

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

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


正确答案:D

第10题:

C++语言中的友元函数为在类外访问类中的私有成员和保护成员提供了方便,但破坏了类的 ______ 和 ______。


正确答案:隐藏性、封装性
隐藏性、封装性

更多相关问题