我昨天才知道,指定初始值设定项目的参数是可选的。但是,在这种情况下会发生什么规则?C++初始值设定项列表中的默认值
在下面的例子中,将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()) { }
};
[构造函数初始化列表空初始化]的可能重复(https://stackoverflow.com/questions/11164394/constructor-initialization-list-with-empty-initialization) – Justin