C++组合构造函数

来源:百度知道 编辑:UC知道 时间:2024/05/25 01:48:17
C++类组合的构造函数,析构函数如何设计?
其调用顺序是怎样的?
请分析详细点,最好带上例子说!
谢谢了!!

#include <iostream>
using namespace std;

class A
{
public:
A()
{
cout << "A的构造函数" << endl;
}

~A()
{
cout << "A的析构函数" << endl;
}
};

class B
{
public:
B()
{
cout << "B的构造函数" << endl;
}
~B()
{
cout << "B的析构函数" << endl;
}
private:
A a;
};

int main()
{
B b;
return 0;
}
//当构造B时需要先初始化它的member,所以它的成员a的构造函数先调用了,然后执行它自己的构造函数体.
析构则按相反方向.因为程序的意思就是delete b,所以先执行它的系构函数,在其中执行delete a.

看看吧,自己运行下,看我说的对不
#include <iostream>
using namespace std;
class A{
public :
A(){cout<<"A->"<<endl;}
~A(){cout<<"-~A"<<endl;}
};
class B{
public :
B(){cout<<"B->"<<endl;}<