问题
单项选择题
有如下类声明: class MyBASE { int k; public: void set(int n){k=n;} int get()const{return k;} }; class MyDERIVED:protected MyBASE { protected: int j; public: void set(int m, int n) {MyBASE::set(m);j=n;} int get()const{return MyBASE::get()+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是
A.4
B.3
C.2
D.1
答案
参考答案:B
解析: 本题考核派生与继承中关于访问权限的继承。类MyDERIVED保护继承类MyBASE,那么类MySASE中的共有成员在派生类MyDERIVED中表现为保护权限,所以加上派生MyDERIVED后来定义的一个保护数据成员j,类MyDERIVED中保护的数据成员和成员函数的个数是3。