标签: c++
复制构造函数和赋值运算符的功能有什么区别。当我们可以使用复制构造函数执行相同的任务时,需要赋值运算符。
答案 0 :(得分:1)
复制构造函数和Assignment运算符的功能有什么区别。
区别在于copy ctor使用现有副本构造新对象,赋值运算符用副本覆盖完全构造的对象。例如,如果你有一个原始指针指向你的类中动态分配的内存 - 复制ctor只会为它分配必要的内存,在赋值运算符中你必须先释放它然后再分配新的。或者你可以只将数据复制到已分配的内存 - 逻辑明显不同。