有如下类定义: class B { public:void funl(){ } private:void fun2(){ } protected:void fun3(){ } }; class D:p

admin2021-02-22  14

问题 有如下类定义:
    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。
转载请注明原文地址:https://kaotiyun.com/show/D7yp777K
0

相关试题推荐
最新回复(0)