在深度复制期间,我们正在编写重载的复制构造函数和赋值运算符.我可以知道为什么我们必须编写重载的赋值运算符,因为我们在重载的复制构造函数中做了同样的事情(除了一些检查并返回它).
谁在调用赋值运算符
遵循规则三:
如果您需要为您的类编写复制构造函数,您还应该编写复制赋值运算符和析构函数.
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)