问题 单项选择题

有如下类定义:
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,

基类中的属性 继承方式 在派生类中的访问方式
公有成员 公有继承 公有
保护成员 保护
私有成员 不可直接访问
公有成员 保护继承 保护
保护成员 保护
私有成员 不可直接访问
公有成员 私有继承 私有
保护成员 私有
私有成员 不可直接访问

选择题
单项选择题