【发布时间】:2017-02-25 04:40:24
【问题描述】:
在 cppreference 上学习 C++ 初始化我发现了以下内容(作为“自 C++11 以来”的值初始化):
1) 如果 T 是没有默认构造函数的类类型,或者具有用户提供或删除的默认构造函数的类类型,则该对象是默认初始化的;
2) 如果 T 是具有既不是用户提供也不是删除的默认构造函数的类类型(也就是说,它可能是具有隐式定义或默认构造函数的类),则该对象为零初始化并且如果它有一个非平凡的默认构造函数,那么它是默认初始化的;
...
这意味着一个类类型可以有:
- 没有;
- 用户提供;
- 已删除;
- 隐式定义;
- 默认;
默认构造函数。
“no”默认构造函数是什么意思?类类型不是总是有一个至少隐式定义的(或者它被删除了)吗?
【问题讨论】:
标签: c++ c++11 constructor