问题 单项选择题

有如下类定义:
class B

public: void funl()
private, void fun2()
protected : void fun3 ()
;
class D: public B

protected: void fun4 ()
;
若obj是类D的对象,则下列语句中不违反访问控制权限的是( )。

A) obj. funl();
B) obj. fun2() ;
C) obj. fun3() ;
D) obj. fun4() ;

答案

参考答案:A

解析: 本题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。所以在本题中,在类外引用成员函数时,派生对象只能引用基类的公用成员函数fun1,故本题答案为A。

选择题
单项选择题