C++ 同一个类调用多个构造函数
时间: 2023-09-24 22:03:05 浏览: 151
在C++中,同一个类调用多个构造函数可以通过使用构造函数委托(Constructor Delegation)来实现。构造函数委托是指一个构造函数调用同一类的另一个构造函数来完成对象的初始化。
例如,假设有一个名为`Rectangle`的类,它有一个接受长度和宽度参数的构造函数,还有一个默认构造函数,用于创建一个未指定长度和宽度的矩形。可以在默认构造函数中调用接受长度和宽度参数的构造函数来完成对象的初始化。
```cpp
#include <iostream>
class Rectangle {
private:
int length;
int width;
public:
Rectangle(int length, int width) {
this->length = length;
this->width = width;
std::cout << "Rectangle created with length: " << length << ", width: " << width << std::endl;
}
Rectangle() : Rectangle(0, 0) {
std::cout << "Default rectangle created" << std::endl;
}
};
int main() {
Rectangle rect1(10, 5); // 调用接受长度和宽度参数的构造函数
Rectangle rect2; // 调用默认构造函数,然后委托给接受长度和宽度参数的构造函数
return 0;
}
```
在上面的示例中,`Rectangle`类的默认构造函数通过使用构造函数委托调用接受长度和宽度参数的构造函数来完成对象的初始化。这样就可以在同一个类中调用多个构造函数,根据不同的构造函数参数进行对象的初始化。
阅读全文