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

admin2021-05-06  22

问题 有如下类声明和函数声明
    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成员;所以程序中Derired类的public成员有:n、k,protected成员有:p,m对Derived不可见,所以:Derived对象d可访问的成员有:n、k,protected成员不可见;答案为B。
转载请注明原文地址:https://jikaoti.com/ti/5xh0FFFM
0

最新回复(0)