【发布时间】:2011-11-26 16:56:07
【问题描述】:
我写了如下代码sn-p:
void foo()
{
struct _bar_
{
int a;
} bar;
cout << "Value of a is " << bar.a;
}
并用 g++ 4.2.1 (Mac) 编译它。输出为“a 的值为 0”。
说 c++ 中结构的数据成员总是默认初始化(与 c 相比)是真的吗?还是观察到的结果只是巧合?
我可以想象 c++ 中的结构有一个默认构造函数(因为 c++ 中的结构和类几乎相同),这可以解释为什么 bar 的数据成员 a 被初始化为零。
【问题讨论】:
-
正如也指出的,这是一个巧合。请注意,您始终可以使用
bar = {}对结构进行零初始化。
标签: c++