我知道这段代码错在哪里 就是堆区 数据的 重复释放 但有个疑问 释放的不是m_age吗 它是个指针将它释放了 它指向的数也会被释放是吗 我感觉我可能对指针理解不够 透彻 能详细讲讲吗
将指针数据释放 它所指向的 堆区数据也会被释放?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
写c++的蒟蒻 2024-02-17 13:36关注问题出在浅拷贝上。你没有写该对象的拷贝构造函数,所以生成p2对象时系统自动的拷贝构造函数会使p2和p1的指针指向同一个位置,所以就会释放两次。
解决方案写一个深拷贝:Person(const Person& temp) { this->m_age=new int(*(temp.m_age)); };解决 无用评论 打赏 举报