使用带有默认关键字的初始化列表
Usage of Initilizer list with default keyword
为什么初始化列表后不能使用default关键字
class classA
{
int num;
public:
classA():num(3) = default;
};
备选方案:
class classA
{
int num = 3;
public:
classA() = default;
};
= default
提供了构造函数的定义。注意,它没有提供主体,它提供了一个定义。构造函数的定义既包括初始化列表,也包括函数体。因此,如果你想要自己的mem- initializer -list,你必须自己提供整个定义。
还要注意,这样做没有任何问题。把= default
写成{}
。使用= default
定义的默认构造函数执行与使用{}
定义的构造函数完全相同的操作。
= default
定义的构造函数不被认为是用户提供的,因此允许类成为普通类。但是,由于您希望在构造函数中发生一些重要的事情,因此使用{}
可以得到您想要的结果。
相关文章:
- C++类 - 初始化列表 - 递归 - 按值传递
- 在初始化列表之外手动调用基类的构造函数
- C++:带有大括号初始化列表的函数调用表达式 - 标准是否规定在单个元素列表的微不足道的情况下忽略大括号?
- std::map与谓词与初始化列表
- 类内初始化与构造函数初始化列表的顺序
- 当返回语句时,逗号运算符、大括号初始化列表和 std::unique_ptr 组合在一起
- 使用初始化列表填充C++中的多维结构数组时出现问题
- 如何在初始化列表中的构造函数之后初始化变量/对象?
- C++初始化列表与分配值
- C++初始化列表中的向量集大小或调整大小
- 在构造函数初始化列表中使用 std::variant
- emplace_back初始化列表错误,当初始化列表在独立变量上工作时
- 解释了构造函数成员初始化列表
- 使用初始化列表时如何获取私有数据?
- 用初始化列表和超类构造函数声明子类构造函数的正确方式
- 如何在成员初始化列表中声明共享指针
- 庞大的初始化列表,如何修复"fatal error C1060: compiler is out of heap space"
- 我可以检查初始化列表中设置的构造函数主体中的变量吗
- 使用整数初始化列表初始化长双精度的向量
- 是否可以在C++中使用初始化列表设置数组的特定成员?