有如下类定义: class XX{ int xdata; public: XX(int n=0) : xdata(n){ } }; class YY : p

admin2015-07-22  27

问题 有如下类定义:
       class XX{
           int xdata;
       public:
           XX(int n=0) : xdata(n){ }
       };
       class YY : public XX{
           int ydata;
       public:
           YY(int m=0, int n=0) : XX(m), ydata(n){ }
       };
其中 YY 类的对象所包含的数据成员的个数是

选项 A、4
B、3
C、2
D、1

答案C

解析 派生类公用继承基类,那么基类中私有不可访问,保护成员依旧是保护成员,公有成员依旧是公有成员;保护继承基类,那么基类的公用成员和保护成员在派生类中成为保护成员,私有成员不可访问;私有继承那么公有成员和保护成员变为私有,私有成员不可访问。本题中派生类继承基类的私有成员,不可直接访问但是可以通过基类的成员函数使用基类的私有数据成员,加上派生类的本身的数据成员,共有2个数据成员,C选项正确。
转载请注明原文地址:https://kaotiyun.com/show/NuNp777K
0

最新回复(0)