为什么子类管理访问c ++私有继承成员?
这个问题在这里已经有了答案:
当您从基类继承私有成员时,其公共成员将成为派生类的私有成员。 这些成员是公共的,并且可以在派生类的成员函数内部访问(例如B.getmultiply()
),但是是私有的,并且不是派生类的朋友的外部代码(例如main()
)不可访问的成员函数。
当一个类私下继承另一个类时,它仍然可以访问该类的(非私有)成员,就像在公共继承下一样。 只有外部世界没有这种访问权限,因为它们在派生类的上下文中变得是私有的(实际上,外部世界甚至不知道派生是派生的:你不能引用例如B
例子与一个类型为A
的指针)。
上一篇: Why sub class manage to access c++ private inheritance member?