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