学习C++上cppreference初始化我发现了以下(作为值初始化“因为C++ 11”):“没有默认构造函数”一类型
1)如果T是没有默认值构造一个类的类型或者使用用户提供或删除的默认构造函数,对象将被默认初始化; 2)如果T是一个具有既不是用户提供也不是删除的默认构造函数的类类型(也就是说,它可能是一个具有隐式定义或默认构造函数的类),则该对象是零初始化的然后如果它有一个不平凡的默认构造函数,它就会被默认初始化;
...
这意味着一个类类型可以有:
- 没有;
- 用户提供;
- 删除;
- 隐式定义;
- 默认;
默认构造函数。
“no”默认构造函数是什么意思?类类型总是有一个至少隐式定义(或被删除)?