了解组合类的概念,组合类有参构造函数的书写方式?组合类构造函数与析构函数的调用顺序?
时间: 2024-04-29 14:25:46 浏览: 13
组合类是指一个类中包含了其他类的对象作为其成员变量。组合类的有参构造函数书写方式与普通类的有参构造函数类似,只需在参数列表中加入需要组合的类的对象即可。例如:
```c++
class B {
public:
B(int x) {
this->x = x;
}
private:
int x;
};
class A {
public:
A(int y, int z) : b(z) {
this->y = y;
}
private:
int y;
B b;
};
```
在组合类中,其中包含的类的构造函数会先于组合类的构造函数被调用,而析构函数的调用顺序则相反,即先调用组合类的析构函数,再调用其中包含的类的析构函数。例如:
```c++
class B {
public:
B() {
cout << "B constructor" << endl;
}
~B() {
cout << "B destructor" << endl;
}
};
class A {
public:
A() {
cout << "A constructor" << endl;
}
~A() {
cout << "A destructor" << endl;
}
private:
B b;
};
int main() {
A a;
return 0;
}
```
输出结果为:
```
B constructor
A constructor
A destructor
B destructor
```