【发布时间】:2015-03-03 23:23:33
【问题描述】:
我已经通过 [问题] (What's the difference between assignment operator and copy constructor?) 了解了复制构造函数和赋值运算符之间的区别。现在我的问题是虽然复制构造函数初始化了以前未初始化的对象,而赋值运算符替换了以前初始化的对象中的数据,在最终结果方面有什么区别。我在想这两种情况的最终结果都是一样的,对吗?最后,通过 (CC) 复制后,我们得到相同的输出,甚至在使用 (AO) 后,我们也得到相同的输出。我在这里有意义吗?有人可以澄清在现实世界的应用方面有什么区别吗?
【问题讨论】:
-
@deviantfan :假设我已经处理了一个对象并进行了一些处理。现在在我的程序的末尾,我在一个对象上使用复制构造函数,并在另一个对象上使用赋值运算符,然后使用 print function 来查看值。在这两种情况下,输出都将是相同的,因为两者都在复制我之前在程序中处理的相同对象?!
-
如果你有一个理智的 CC,是的。重要的区别是,如果您创建一个新对象只是为了在下一行中分配一些东西,那么普通的构造函数可能会不必要地浪费时间(和内存)。在下面添加了一个示例。
标签: c++ constructor assignment-operator