我昨天才知道,为初始化列表项指定参数是可选的。但是,在这种情况下发生的事情的规则是什么?
在下面的示例中,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()) { }
};