问题 单项选择题

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

A.cout<<publicData<<endl;

B.cout<<privateData<<endl;

C.cout<<publicData<<endl;

D.cout<<privateData<<endl;

答案

参考答案:A

解析: 公有类型定义了类的外部接口,任何一个外部的访问都必须通过外部接口进行;私有类型的成员只允许本类的成员函数访问。基类的私有成员是派生类不能直接访问的,所以B、D两项错误,ChildA公有继承Parents,ChildB私有继承Parents。b是ChildB类型的对象,b的成员变量只能通过成员函数才能访问,故C错误。

多项选择题
单项选择题