【发布时间】:2014-06-02 10:51:43
【问题描述】:
$8.5/7 声明
——如果 T 是一个(可能是 cv 限定的)非联合类类型,没有用户提供的构造函数,那么对象 是零初始化的,如果 T 的隐式声明的默认构造函数是非平凡的,则该构造函数是 调用。
我无法理解这句话的最后一部分“如果 T 的隐式声明的默认构造函数不平凡,则调用该构造函数。”
有人可以举个例子解释一下吗?
class A
{
int x;
};
class B : A {};
B b{};
我认为上面代码中的B 有一个重要的构造函数。但是如何观察对B 隐式声明的构造函数的调用并确保我的编译器正在调用它?
【问题讨论】:
-
为什么你认为
B有一个不平凡的构造函数?它满足 C++11 12.1/5 中给出的普通构造函数的所有条件。
标签: c++ c++11 language-lawyer