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

admin2015-07-22  28

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

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

答案C

解析 公有继承中,派生类不改变基类的成员访问权限(private成员除外),即基类的public成员在派生类中是public成员,基类的protected成员在派生类中是protected成员;另外友元函数可以访问类的private成员、protected成员和public成员,所以f函数中d可以访问的数据成员有:n、p、k;m对派生类不可见;答案为C。
转载请注明原文地址:https://jikaoti.com/ti/XWE0FFFM
0

最新回复(0)