赋值运算符与复制构造函数

时间:2017-10-16 16:34:12

标签: c++

复制构造函数和赋值运算符的功能有什么区别。当我们可以使用复制构造函数执行相同的任务时,需要赋值运算符。

1 个答案:

答案 0 :(得分:1)

  

复制构造函数和Assignment运算符的功能有什么区别。

区别在于copy ctor使用现有副本构造新对象,赋值运算符用副本覆盖完全构造的对象。例如,如果你有一个原始指针指向你的类中动态分配的内存 - 复制ctor只会为它分配必要的内存,在赋值运算符中你必须先释放它然后再分配新的。或者你可以只将数据复制到已分配的内存 - 逻辑明显不同。