在C++中能否从一个构造函数调用另一个构造函数(构造函数链)?
大家好!我刚从Java开始学习C++,遇到了一个问题。在Java中,我经常这样做:
```java
public class MyClass {
private int x;
private int y;
public MyClass() {
this(0, 0); // 调用带参数的构造函数
}
public MyClass(int x, int y) {
this.x = x;
this.y = y;
}
}
```
现在我尝试在C++中做同样的事情:
```cpp
class MyClass {
private:
int x;
int y;
public:
MyClass() {
MyClass(0, 0); // 这样不行?
}
MyClass(int x, int y) {
this->x = x;
this->y = y;
}
};
```
但这行不通!在默认构造函数中,创建了一个临时对象,它立即被销毁,而当前对象的字段仍然未初始化。如何在C++中正确组织构造函数链?是否需要编写一个单独的init()方法,还是有更优雅的方式?提前感谢您的帮助!
<<>>