【发布时间】:2020-09-11 19:16:05
【问题描述】:
当我阅读时:
赋值运算符和复制有什么区别 构造函数?
这里:What's the difference between assignment operator and copy constructor?
如下示例所示:
A aa;
A a = aa; //copy constructor
对比:
A aa;
A a;
a = aa; // assignment operator
我的问题是,为什么我们需要赋值运算符?我的意思是在这种情况下使用复制构造函数会更有效,同时它执行相同的工作。
有人可以举一个使用赋值运算符的真实例子吗?不能被复制构造函数替换?
【问题讨论】:
-
我的意思是在这种情况下使用复制构造函数会更有效,同时它执行相同的工作。 -- 无论用户选择什么,您的类都应该工作去做。 有人可以举一个真实世界的例子来说明使用赋值运算符,它不能被复制构造函数替换吗? --
int x = 10; int y = 4; if (something) x = y; -
假设您正在使用已经创建的对象池,您需要复制它们
-
从数组或向量的中间移除一个元素?如果没有赋值,你将如何“转移”其他元素?
-
@PaulMcKenzie 为什么不
int y = 4; int x = (something) ? y : 10;? -
为什么不步行 25 英里而不是开车呢?这基本上就是它正在沸腾的内容。当可以完成简单的重新分配时,以这样的方式编写代码是没有意义的。
标签: c++ operators copy-constructor assignment-operator