单选题
有如下类声明和函数声明 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。
提交答案
关闭