我理解显式关键字对具有单个参数的构造函数的作用,它肯定会限制不需要的行为的可能性。我也理解移动和复制构造函数的作用。
我不明白的是,显式构造函数如何影响移动和复制构造函数,我还看到了一个可以禁用复制和移动构造函数的情况......为什么要这样做呢?这一切对我来说都很模糊。
答案 0 :(得分:0)
显式复制构造函数的工作方式与显式转换构造函数的工作方式相同 - 不能隐式调用它。唯一的区别是你的对象是由什么构建的。
我也相信这种情况的使用情况非常罕见且很远。
稍微更常见的情况是删除类的复制构造函数和赋值运算符(= delete
)。这对于表示唯一资源的对象很有用,因此不应复制。 std::cout
是存在的对象的示例,但不应复制。