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
相关产品推荐
相关产品推荐

