c++ - 在 C++ 中,我可以在定义自己的复制构造函数后跳过定义赋值运算符吗?

标签 c++ oop c++11 copy-constructor assignment-operator

当我定义一个类时,如果我需要深拷贝,我需要定义我自己的拷贝构造函数。 那么,是否也需要定义赋值运算符呢? 如果跳过,赋值是否做浅拷贝?

最佳答案

是的,你需要。这被称为 Rule of Three : 当复制构造函数、赋值运算符或 dtor 中的一个被定义时,其他两个可能必须被定义。存在异常(exception),但在标准情况下,您必须...

自 C++11 起,Rule of Five适用于处理移动语义。

关于c++ - 在 C++ 中,我可以在定义自己的复制构造函数后跳过定义赋值运算符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59158929/

相关文章:

php - 有没有办法将对象反序列化为 "$this"?

c++ - 在 C++ 中使用 initializer_list 进行结构赋值

c++ - 多平台多处理?

c++ - 检索磁盘读/写最大速度(以编程方式)

c++ - 如何在 clang 格式的新行中控制 lessless 的对齐方式

c++ - for 循环 - 遍历特定元素

c++ - boost::program_options - 验证失败时在错误消息中显示用户输入的值

c# - C#中的 "new { id = 0 }"是什么类型?

c# - 继承和角色

c++ - 为什么可变参数模板的模板特化与非可变模板的特化不同?