为什么要重载运算符=?

来源:6-6 管理内存:向函数中传入一个对象

版槽子

2023-05-23 11:23

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

写回答 关注

1回答

  • AndroidRA9
    2023-06-01 16:04:32

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


    版槽子

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

    2023-06-02 17:52:54

    共 1 条回复 >

趣味 C++ 进阶

本课程是 C++ 的进阶课程,继续趣味学习之旅,带你探索 C++ 的高级用法。

13927 学习 · 44 问题

查看课程

相似问题