![](/img/trans.png)
[英]Why initialization by assignment needs copy constructor if it does not use it
[英]Why does copy constructor work for initialization, but not for assignment?
我们在初始化的情况下使用复制构造函数,但为什么我们不能在赋值的情况下使用它。 同样的道理,为什么我们初始化的时候赋值操作没有实现(并且有一个拷贝构造函数)
复制构造函数用于创建新的 object,而复制赋值运算符用于更改已经存在的 object。
构造会创建一个 object,其中一个不存在,分配会更新现有的 object。
例如,构造可能会获取一些资源,并且分配可能需要在复制源 object 之前释放它们。
为了在这两种情况下都做正确的事情,你建议的这样一个统一的构造函数需要能够区分构造和赋值,这基本上使它成为一个主体中的两个单独的函数。
最好从两个单独的函数开始处理,这就是我们所处的位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.