class A
{
public:
A(){ cout << "A::A()" << endl;}
~A(){ cout << "A::~A()" << endl;}
};
class B
{
public:
B(){ cout << "B::B()" << endl;}
~B(){ cout << "B::~B()" << endl;}
};
class C:public B
{
A a;
public:
C(){cout << "C::C()" << endl;}
~C(){cout << "C::~C()" << endl;}
};
A a;
int main()
{
C c;
}
结果是:
A::A()
B::B()
A::A()
C::C()
C::~C()
A::~A()
B::~B()
A::~A()
这是为什么?
第一个A是因为全局对象a在运行程序之前就创建了?
中间的BAC是为什么呢?
基类B派生出C,不应该是先构造出C才构造局部对象a,顺序是BCA吗?
难道局部对象在函数内的优先级是高于一切的?甚至是自身类的构造函数?
A::A()为什么是C的基类?他们之间的继承关系在哪里啊?
追答抱歉,看错了。嘿嘿
A::A()应该是全局变量的吧。