单选题
👁️ 浏览量:

试题题干

下列关于类层次中重名成员的描述中,错误的是(    )

A

C++允许派生类的成员与基类成员重名

B

在派生类中访问重名成员时,屏蔽基类的同名成员

C

在派生类中不能访问基类的同名成员

D

如果要在派生类中访问基类的同名成员,可以显式地使用作用域符指定

参考答案

正确答案:

试题解析

若派生类中定义了一个与基类中同名的成员,则会出现基类与派生类有同名成员的情况,这是允许的。故A正确。

这种情况下,若在派生类的成员函数中访问这个同名成员,访问的就是派生类中的成员,这种情况叫“覆盖”,即派生类的成员覆盖基类的同名成员。故B正确。

如果派生类声明了一个和基类某个成员同名的新成员,派生的新成员就隐藏了外层同名成员,直接使用成员名只能访问到派生类的成员。如果要访问被隐藏的成员,就需要使用基类名和作用域分辨符来限定。故D正确,C错误。