You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++多级继承中对象d的数据成员访问权限验证咨询

C++多级继承中对象D的成员访问权限验证

我编写了一段C++多级继承代码,希望验证main函数中定义的对象d在继承链中对各数据成员的访问权限。以下是我总结的各层级成员访问权限,需确认是否符合对象d的实际访问情况:

各层级成员访问权限总结

结构体A

  • a1: public
  • a2: protected
  • a3: private

结构体B

  • A::a1: private
  • A::a2: private
  • A::a3: NOT accessible
  • b1: public
  • b2: protected
  • b3: private

结构体C

  • A::a1: NOT accessible
  • A::a2: NOT accessible
  • A::a3: NOT accessible
  • B::b1: protected
  • B::b2: protected
  • B::b3: NOT accessible
  • c1: public
  • c2: protected
  • c3: private

结构体D

  • A::a1: NOT accessible
  • A::a2: NOT accessible
  • A::a3: NOT accessible
  • B::b3: NOT accessible
  • B::b1: protected
  • B::b2: protected
  • C::c1: public
  • C::c2: protected
  • C::c3: NOT accessible
  • d1: public
  • d2: protected
  • d3: private

验证代码

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;

}

内容的提问来源于stack exchange,提问作者sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:57:33