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

cat*_*een 0 c++ oop copy-constructor assignment-operator c++11

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

Jea*_*nès 5

是的,你需要。这被称为三法则:当定义了 copy-ctor、assignment-operator 或 dtor 之一时,可能必须定义其他两个。存在例外,但在标准情况下,您必须...

从 C++11 开始,五法则适用于处理移动语义。