添加运算符重载导致断点

这段代码正常运行

img

这段代码却报错

img

后面这段代码只是用左移重载输出p的属性就出现断点(但是程序已经运行到输出两个对象的属性了)这是为什么,感谢赐教!

知道了,是因为调用运算符重载函数时,自动的对person p进行了浅拷贝,复制了地址,因此后续清除指针时对堆区的同一块区域进行了多次清除,因此报错。所以哪怕换成别的函数,只要浅拷贝存在就会报错。person p改成person &p得以解决


可以看下cpp参考手册中的 c++-运算符重载