jia*_*afu -1 c++ initialization
#include <iostream>
class X {
public:
int a;
};
int main(int argc, char *argv[]) {
X x;
std::cout<<x.a<<std::endl;
}
Run Code Online (Sandbox Code Playgroud)
为什么是2130567168?不是0?
它可能是任何东西.由于x.a未初始化,它的价值是不确定的.
在C++中,类成员不是默认初始化的.他们需要显式初始化,在没有任何保持未初始化的情况下.使用任何此类未初始化的类成员只为您的程序提供一件事,即未定义的行为.
您需要x.a使用" 成员初始化程序"列表初始化为有意义的内容.
class X
{
public:
int a;
X(int i):a(i){}
X():a(0){}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
412 次 |
| 最近记录: |