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

admin2015-07-22  29

问题 有如下类声明和函数声明:
     class Base{
         int m;
     public:
         int n;
     protected:
         int p;
     };
     class Derived: public Base{
         int k;
     };
     void f(Derived d);
则允许函数 f 访问的参数 d 的数据成员的个数是

选项 A、1
B、2
C、3
D、4

答案A

解析 C++中,以class关键字定义的类默认的访问级别为private,另外对于公有继承,基类成员保持自己的访问级别(private成员除外),即基类的public成员为派生类的public成员,基类的protected成员为派生类的protected成员;本题中,Derived类以public方式继承Base,所以Derived中public成员有:n,protected成员有:p,private成员有:k,不可见的成员有:m;这些成员中,对Derived类对象可见的只有public成员n,答案为A。
转载请注明原文地址:https://jikaoti.com/ti/vlE0FFFM
0

最新回复(0)