在 C++ 中的多级继承示例中验证数据成员的可访问性

Verifying accessibility of data members in a multi-level inheritance example in C++

提问人:Sami 提问时间:3/15/2023 最后编辑:Sami 更新时间:3/15/2023 访问量:43

问:

我有以下涉及C++多级继承的代码。 我想验证继承链中 main 中定义的对象 d 的数据成员的可访问性。我将可访问性总结如下,并想知道这是否是对象 d 看待其成员的方式!

一个:

A1 公共

A2 保护

A3 私人

B:

A::a1 私有

A::a2 私人

A::a3 无法在此处访问

B1 公共

B2 保护

B3 私人

C:

A::a1 无法在此处访问

A::a2 无法在此处访问

A::a3 无法在此处访问

B:b1 保护

B:b2 保护

B:b3 无法在此处访问

C1 公共

C2 保护

C3 私有

D:

A::a1 无法在此处访问

A::a2 无法在此处访问

A::a3 无法在此处访问

B:b3 无法在此处访问

B:b1 保护

B:b2 保护

C:c1 公共

C:c2 保护

C:c3 无法在此处访问

D1 公共

D2 保护

D3 私人

struct A
{
    A() {}
public:
    int a1;
protected:
    int a2;
private:
    int a3;
};


struct B: private A
{
    B() :
        A() {}
public:
    int b1;
protected:
    int b2;
private:
    int b3;
};


struct C : protected B
{
    C() :
        B() {}
public:
    int c1;
protected:
    int c2;
private:
    int c3;
};


struct D : public C
{
    D() :
        C() {}
public:
    int d1;
protected:
    int d2;
private:
    int d3;
};

int main()
{
    const D d;

}
C++ 继承 访问说明符

评论

1赞 Davis Herring 3/15/2023
请不要有文字图片。
0赞 Sami 3/15/2023
我删除了图片!!但那更有条理!

答: 暂无答案