为了账号安全,请及时绑定邮箱和手机立即绑定

为什么要重载运算符=?

如果没有重载运算符=,赋值的时候还是拷贝吗?

正在回答

1 回答

如果没有重载运算符=,赋值的时候只会浅拷贝,也就是说两个变量会指向同一个内存空间,在清除内存时可能会把同一内存空间清除2次并导致内存泄漏。重载运算符“=”之后,可以进行深拷贝,从而防止浅拷贝产生的内存泄漏问题。此外,重载运算符“=”还可以解决类对象之间的运算和赋值问题。


1 回复 有任何疑惑可以回复我~
#1

版槽子 提问者

可是老师不是又写了一个拷贝构造函数吗,这个拷贝构造函数不就是进行深拷贝的吗。而且,重载运算符的函数里面,只是返回了*this,并没有做其他操作,所以写它的目的是什么呢?
2023-06-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么要重载运算符=?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信