问题
单项选择题
有如下类定义:
class B
public:
void fun1()
private:
void fun2()
protected:
void fun3()
;
class D:public B
protected:
void fun4()
;
若obj是类D的对象,则下列语句中不违反访问控制权限的是______。
A.obj.fun1();
B.obj.fun2();
C.obj.fun3();
D.obj.fun4();
答案
参考答案:A
解析: 本题考查派生类对基类成员的访问属性,基类成员在派生类中的访问属性如下表所示,因此本题选A,
基类中的属性 | 继承方式 | 在派生类中的访问方式 |
公有成员 | 公有继承 | 公有 |
保护成员 | 保护 | |
私有成员 | 不可直接访问 | |
公有成员 | 保护继承 | 保护 |
保护成员 | 保护 | |
私有成员 | 不可直接访问 | |
公有成员 | 私有继承 | 私有 |
保护成员 | 私有 | |
私有成员 | 不可直接访问 |