问题
单项选择题
有如下类声明:
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。