有如下类定义和变量定义: class Parents{ public: int publicData; private: int privateData; }; class ChildA:public

admin2017-04-25  24

问题 有如下类定义和变量定义:
    class Parents{
    public:
    int publicData;
    private:
    int privateData;
    };
    class ChildA:public Parents{/*类体略*/};
    class ChildB:private Parents{/*类体略*/};
    ChildA a;
    ChildB b;
    下列语句中正确的是(    )。

选项 A、cout<<a.publicData<<endl;
B、cout<<a.privateData<<endl;
C、cout<<b.publicData<<endl;
D、cout<<b.privateData<<endl;

答案A

解析 基类Parents的私有成员privateData在派生类ChildA和ChildB中是不可以访问,所以选项B、D是错误,而派生类ChildB私有继承基类Parents,所以基类:Parents的公有成员publicData在派生类ChildB中变为私有成员,只能在派生类ChildB内部访问,因而选项c是错误的。派生类ChildA公有继承基类Parents,所以基类Parents的公有成员publicData在派生类ChildA中可以访问。
转载请注明原文地址:https://jikaoti.com/ti/ygt0FFFM
0

最新回复(0)