【发布时间】:2012-12-24 22:32:58
【问题描述】:
我昨天才知道,为初始化列表项指定参数是可选的。但是,这种情况发生的规则是什么?
在下面的例子中,ptr 是否会被初始化为 0,切换为 false,Bar 默认构造?我想这个问题有点多余,因为如果未指定的参数值 == 未定义的行为,初始化列表中将没有什么意义。
我是否也可以指出 C++ 标准的部分,该部分说明了在初始化列表项没有被赋予参数的情况下的行为?
class Bar
{
Bar() { }
};
class SomeClass;
class AnotherClass
{
public:
SomeClass *ptr;
bool toggle;
Bar bar;
AnotherClass() : ptr(), toggle(), bar() { }
// as opposed to...
// AnotherClass() : ptr(NULL), toggle(false), bar(Bar()) { }
};
【问题讨论】:
标签: c++ standards initializer-list