问题 单项选择题

有如下类声明:
class MyBASE

int k;
public:
void set(int n)k=n;
int get()constreturn k;
;
class MyDERIVED:protected MyBASE

protected:
int j;
public:
void set(int m, int n) MyBASE::set(m);j=n;
int get()constreturn MyBASE::get()+j;
;
则类MyDERIVED中保护的数据成员和成员函数的个数是

A.4

B.3

C.2

D.1

答案

参考答案:B

解析: 本题考核派生与继承中关于访问权限的继承。类MyDERIVED保护继承类MyBASE,那么类MySASE中的共有成员在派生类MyDERIVED中表现为保护权限,所以加上派生MyDERIVED后来定义的一个保护数据成员j,类MyDERIVED中保护的数据成员和成员函数的个数是3。

单项选择题
单项选择题