繁体   English   中英

为什么复制构造函数可以用于初始化,但不能用于赋值?

[英]Why does copy constructor work for initialization, but not for assignment?

我们在初始化的情况下使用复制构造函数,但为什么我们不能在赋值的情况下使用它。 同样的道理,为什么我们初始化的时候赋值操作没有实现(并且有一个拷贝构造函数)

复制构造函数用于创建新的 object,而复制赋值运算符用于更改已经存在的 object。

构造会创建一个 object,其中一个不存在,分配会更新现有的 object。
例如,构造可能会获取一些资源,并且分配可能需要在复制源 object 之前释放它们。

为了在这两种情况下都做正确的事情,你建议的这样一个统一的构造函数需要能够区分构造和赋值,这基本上使它成为一个主体中的两个单独的函数。

最好从两个单独的函数开始处理,这就是我们所处的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM