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

15 查阅

有如下类定义和变量定义:

class parents{

public:

int publicData;

private:

int privateData;

};

class ChildA:public Parents{/*类体略*/);

class ChildB:private Parents{/*类体略*/};

ChildA a;

ChildB b:

下列语句中正确的是

A.cout<<a.pubficData<<endl;

B.cout<<a.privateData<<endl;

C.cout<<b.pubficData<<endl;

D.cout<<b.privateData<<endl;

参考答案:

A解析:基类中的私有成员在派生类中是隐藏的,只能在基类内部访问,派生类中的成员不能访问基类中的私有成员。ChildA是Parents的派生类,则a可以访问Parents的公有变量,但不可访问Parents的私有变量。所以A)项正确,B)项错误。派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都改变为私有成员,ChildB从Parents私有继承,则Parents的公有变量publicData在ChildB中变为私有变量,所以b不能访问l~ublicData,也不能访问privateData。所以

计算机二级