有如下类声明: c1ass Base{ protected; int amount; public; Base(int n=0): amount(n){} int getAmount()const{retum

admin2020-11-11  13

问题 有如下类声明:
    c1ass Base{
    protected;
    int amount;
    public;
    Base(int n=0): amount(n){}
    int getAmount()const{retum amount;}
    };
    c1ass Derived: public Base{
    protected;
    int value;
    public;
    Derived(int m, int n): value(m). Base(n){}
    Int getData()const{ return value+amount;}
    };
    已知x是一个Derived对象,则下列表达式中正确的是(    )。

选项 A、x.value+x.getAmount()
B、x.getData()—x.gctAmount()
C、x.getData()—x.amount
D、x.vabled—x.aount

答案B

解析 此题考查的是派生类对基类成员的访问权限。派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。派生类从基类公有继承时,基类的公有成员和保护成员在派生类中仍然是公有成员和保护成员;派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都变成私有成员;派生类从基类保护继承时,基类的公有成员在派生类中变成保护成员,基类的保护成员在派生类中仍然是保护成员。
转载请注明原文地址:https://kaotiyun.com/show/Kgyp777K
0

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