有如下类声明和函数声明 class Base{ int m; public: int n; protected: int p; }; class Der

admin2020-07-23  8

问题 有如下类声明和函数声明
     class Base{
         int m;
     public:
         int n;
     protected:
         int p;
     };
     class Derived: public Base{
     public:
         int k;
     };
     void f(Derived d);  
则在函数 f 中通过 d 可访问的数据成员包括

选项 A、n
B、n和k
C、n、k和p
D、n、k、p和m

答案B

解析 公有继承中,基类成员保持自己的访问级别(private成员除外),基类的public成员在派生类中是public成员,基类的protected成员在派生类中是protected成员;所以程序中Derived类的public成员有:n、k,protected成员有:p,m对Derived不可见,所以Derived对象d可访问的成员有:n、k,protected成员不可见;答案为B。
转载请注明原文地址:https://jikaoti.com/ti/5gl0FFFM
0

最新回复(0)