为啥编译器说我没有初始化
时间: 2023-07-11 07:42:07 浏览: 86
这个问题出现的原因可能是在类中声明了构造函数,但是在实例化对象时没有调用构造函数对成员变量进行初始化。你可以在类中添加一个构造函数来初始化成员变量,或者在实例化对象时使用默认构造函数进行初始化。例如,在类中添加一个构造函数:
```
class complex {
private:
float c_real;
float c_image;
public:
complex(float real = 0, float image = 0): c_real(real), c_image(image) {}
complex operator+(complex& a) {
complex temp;
temp.c_real = this->c_real + a.c_real;
temp.c_image = this->c_image + a.c_image;
return temp;
}
};
```
在这个构造函数中,我们使用了成员变量初始化列表来初始化成员变量。这里的默认参数0表示如果在实例化对象时没有传递参数,则使用默认值0进行初始化。这样就可以避免编译器报错。
阅读全文