C++允许一个类的对象作为另一个类的成员变量,但是这时其构造函数与析构函数是怎样调用的呢。
不妨写一段代码来考究一下。
class A {
public:
A()
{
cout << "A的构造函数的调用" << endl;
}
~A()
{
cout << "A的析构函数的调用" << endl;
}
};
class B {
public:
A a;
B()
{
cout << "B的构造函数的调用" << endl;
}
~B()
{
cout << "B的析构函数的调用" << endl;
}
};
void Test01()
{
B b;
}
int main()
{
Test01();
return 0;
}
运行后的结果为:
总而言之:
1.在创建对象时,先构造其他类对象,再构造自身的对象。
2.在销毁对象时,先销毁自身,在销毁其他类对象。ps(有点类似堆栈)