2017-10-16 79 views
-6

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

+0

我们无法为已创建的对象使用复制构造函数执行相同的任务。 –

+0

阅读[复制分配操作员](http://en.cppreference.com/w/cpp/language/copy_assignment)的内容和[复制构造函数](http://en.cppreference.com/w/) cpp/language/copy_constructor)呢。目前,您的问题等同于“我们有飞机时为什么要使用汽车”。 – nwp

回答

1

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

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

相关问题