【发布时间】:2013-12-05 14:48:05
【问题描述】:
每个变量在使用前都应该被正确定义和初始化(给它赋值)。但是在某些情况下,c++ 会将变量设置为默认值为零。就像下面的例子。
class A{
...
static int val;
...};
//int val = 10; //This is the usual definition.
int val;//Definition without assigning a value.
...
A a; //a class A object
std::cout<<a.val;
结果为零。显然,编译器做了一些事情来将变量 a.val 初始化为零。我很好奇他们一般什么时候会这样做?
【问题讨论】:
-
我不确定,但对于 POD,我认为它被初始化为 0,但老实说,不要依赖这个,只需自己初始化它。
-
@andre 不,不要假设 POD 已初始化。
-
@andre 如果您“不确定”,请不要回答。
标签: c++ initialization