给出以下代码:
class Class {
int x;
public:
Class() = default;
};
我收到以下警告:
会员' x'未在此构造函数中初始化
这个警告的原因是什么?
答案 0 :(得分:6)
var d1 = new Date($('#dte').val());
var end = d1 + $('#numberToAdd').val();
是x
,其默认初始化会使其具有不确定的值。最简单,最统一的解决方法是在声明中对其进行初始化。
int
您还可以class Class {
int x{}; // added {}, x will be 0
public:
Class() = default;
};
或int x = 5;
提供默认值
答案 1 :(得分:4)
这个警告的原因是什么?
default
ed默认构造函数不初始化基本类型的任何成员。因此,x
未被初始化。
您可以使用构造函数中的成员初始化方法
来解决问题Class() : x(0) {}
或类内成员初始化。
int x = 0;
Class() = default;