我写了一个这样的结构......在C ++ 11中
struct StackOverflow
{
int x;
StackOverflow(){}
StackOverflow(int x) { x = x; }
};
我知道我应该写后一个构造函数,StackOverflow(int x) : x(x) {}
但我很高兴在这种情况下我没有写,因为我学到了一些东西:
C++11 编译器没有对语句做正确的事情{x = x;}
。事实上,结构成员x
甚至没有被初始化(当我调试为什么我的应用程序失败时它有随机值)。而且我没有收到编译器警告。
这不应该奏效吗?