C++为什么要重写拷贝函数和重载=

      因为如果我们不重新安排这2个东西,它会直接用=号一一对应起来,这就会造成一个问题,如果类中有指针成员,若赋值一方出现了改动,就会造成被复制方的改动,这个显然是地址拷贝,会造成一些bug,所以java就明说了类都是地址拷贝,因为它没有指针,而C++有指针,所以有些东西还是需要注意的,而且=号重载时应该判断一下右值是不是自身,因为指针一般都要先释放内存,再重新赋值,如果我自己=我自己,就会造成一个野指针的问题了。

发布了133 篇原创文章 · 获赞 8 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/fbher/article/details/100171701