为什么赋值运算符用于深层复制以及谁调用它

Sij*_*ith 1 c++ qt visual-c++

在深度复制期间,我们正在编写重载的复制构造函数和赋值运算符.我可以知道为什么我们必须编写重载的赋值运算符,因为我们在重载的复制构造函数中做了同样的事情(除了一些检查并返回它).

谁在调用赋值运算符

Alo*_*ave 5

遵循规则三:
如果您需要为您的类编写复制构造函数,您还应该编写复制赋值运算符析构函数.

Copy Assignment操作符Copy Constructor都称为复制功能.它们基本上有助于从现有对象获取对象的新副本.它们都是在不同场景中调用的独立实体.因此,就像复制构造函数一样,您确保对所有指针成员进行深度复制,而不仅仅是浅复制,同样适用于复制赋值运算符.

代码示例:

class MyClass obj1, obj2;
class MyClass obj3(obj1);     //Calls Copy Constructor
obj1 = obj2;                  //Calls Copy Assignment Operator
Run Code Online (Sandbox Code Playgroud)

  • @MGZero:因为很有可能,如果你需要在构造函数中做一些特殊的事情,那就意味着使用的特殊资源必须正确处理. (2认同)