Why sub class manage to access c++ private inheritance member?
本问题已经有最佳答案,请猛点这里访问。
我的问题是为什么
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class A { public: int x; int y; void set(int a, int b) { x = a; y =b;} }; class B : private A{ public: int getmultiply (void){ return x*y;} }; int main(void) { B b; //b.set(3,4); // this will cause compilation error cout << b.getmultiply(); // why this will not?? return 0; } |
当私有继承自基类时,其公共成员将成为派生类的私有成员。这些成员在派生类(例如
当一个类从另一个类私有继承时,它仍然可以访问该类(非私有)成员,就像在公共继承下一样。只有外部世界没有这种访问权限,因为它们在派生类的上下文中是私有的(事实上,外部世界甚至不知道派生是派生的:例如,您不能引用具有