有如下类定义和变量定义: 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错误。