【发布时间】:2018-09-08 15:23:49
【问题描述】:
这里有一些代码
class A{
private:
int a;
public:
void abc()
{ cout << a << endl; }
};
class B : public A
{ };
main() {
B obj;
obj.abc(); // it works but why? obj.abc is printing a which should not inherit to class B because it is private.
好的,所以派生类从基类继承了一个公共函数 abc(),并且该函数试图输出一个不属于派生类的成员变量 a,因为它在基类中是私有的?那么它是如何做到的。这段代码打印出...但是如何打印?
【问题讨论】:
-
基类的私有成员是派生类的成员。它们不容易从派生类中访问,但不会消失。
标签: c++ inheritance private member public