问题 单项选择题

有如下类定义:

class MyBase

int k ;

public :

MySase(int n =0):k(n)

int value () const return k ;

;

class MyDerived: MyBase

int j ;

public :

MyDerived ( int i) : j (i)

int getK()const return k;

int getJ() const return j ;

;

编译时发现有一处语法错误,对这个错误最准确的描述是()。

A.函数getK试图访问基类的私有成员变量k

B.在类MyDerived的定义中,基类名MvBase前缺少关键字public、protected或private

C.类MyDerived缺少一个无参的构造函数

D.类MyDerived的构造函数没有对基类数据成员k进行初始化

答案

参考答案:A

解析:

默认继承方式为私有继承,私有继承将基类的公用成员和保护成员都变为了私有成员,基类的私有成员依然属于基类私有,派生类不能访问基类的私有成员。所以A选项正确。

选择题
单项选择题