【发布时间】:2015-10-16 20:24:43
【问题描述】:
我在哪里可以在标准 (C++14) 中找到一个子句,说明用户定义的默认构造函数带有一个空的 mem-initializer-list 和一个空的主体调用默认构造函数每个基类和每个成员子对象。例如考虑下面的代码:
#include <iostream>
class A{
public:
A() {std::cout << "A" << '\n'; }
};
class Base{
public:
Base() { std::cout << "Base" << '\n'; }
};
class Derived : public Base {
A a;
public:
Derived() {}
};
int main()
{
Derived d;
}
Base 和 A 的构造函数由用户声明的构造函数 Derived() 调用,具有空的 mem-initializer-list 和空主体。
【问题讨论】:
-
12.6 可能会涵盖这一点
-
我的第一个猜测是......你会在文本附近的某个地方找到关于 mem-initializer 列表和基类的初始化及其顺序等的文本。
标签: c++ constructor c++14 language-lawyer ctor-initializer