问题
单项选择题
下列类的定义中,有( )处语法错误。 class Base { public:Base ( ) { }Base(int i){ data=i;} private:int data; }; class Derive : public Base { public:Derive() : Base(O){}Derive (int x){ d=x;}void setvalue(int i){ data=i;} private:d; };
A.1
B.2
C.3
D.4
答案
参考答案:B
解析: 本题考核派生类的定义和成员的访问权限。 第1处错误:在派生类的构造函数Derive(intx)中没有调用基类的构造函数对基类对象初始化。 第2处错误:数据data是基类Base的私有成员,派生类Derive不能访问,所以在函数setvalue中对data的赋值是错误的。