1.先 构造 ”组合类“中的成员类,再构造这个组合类本身,析构次序相反
2.关于 构造函数
<case 1>当“组合类”的构造函数 给 成员类传递了参数时,就会调用成员类的相应构造函数,
<case 2>当“组合类”的构造函数没有 给成员类传递参数时, 就会调用成员类的默认构造函数
#include<iostream>
#include<string>
using namespace std;
//构造“组合类”之前,如果必须先构造成员类对象,
//如果组合类中包含 相应的构造函数初始化这个成员类,那么就按照构造函数的来,否则就调用 成员类的 默认构造函数
class Member
{
private:
int x;
public:
//默认构造:
Member()
{
x = 0;
cout << "调用成员类的 默认构造函数!" << endl;
}
//1个int型参数的构造函数:
Member(int x)
{
this->x = x;
cout << "调用成员类的 int参数的构造函数!" << endl;
}
};
class WithMember
{
private:
int y;
Member m;
public:
//1个int型参数的构造函数:
WithMember(int y)
{
this->y = y;
cout << "调用WithMember组合类的1个参数的构造函数" << endl;
}
//2个参数的构造函数,利用参数列表进行构造
WithMember(int y_, int x_) :y(y_), m(x_) {
cout << "调用withMember组合类的2个参数的构造函数" << endl;
};
};
int main()
{
//测试
WithMember test(1,2);
return 0;
}