打印

指针内存释放问题

[复制链接]
1229|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
txcy|  楼主 | 2012-7-23 21:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题时这样的,有A B两个类
在A类中通过指针申请了内存,指针为a1,由于B类中也要使用,于是把a1指针传给B类,
B类中用b1接收,B类比A类要早销毁,我想问一下b1这个指针怎么处理?
由于a1 b1指向同一块内存,B类销毁后A类还在,所以b1指向的内存不能释放,
本来想让b1 == NULL,但是时MFC的消息响应函数,所以找不到好的时机让b1==NULL(在B的析构函数中让b1==NULL吗?)
有没有别的处理方法?

相关帖子

沙发
秋天落叶| | 2012-7-23 22:07 | 只看该作者
智能指针。或者如果你想让那个b1==NULL其实也是有方法的,MFC里面一般都有个Destroy函数的呢。你可以这里面设置。

使用特权

评论回复
板凳
yybj| | 2012-7-23 22:15 | 只看该作者
计数器或者智能指针都可以解决这个问题。不过面向对象的封装特性,就是牺牲点点性能和空间,带来健壮性的提升,我觉得既然选择了c++,就不要两个类对象公用指针了。

使用特权

评论回复
地板
baidudz| | 2012-7-23 22:21 | 只看该作者
使用智能指针。SmartPointer

使用特权

评论回复
5
无冕之王| | 2012-7-24 21:51 | 只看该作者
使用智能指针。SmartPointer
baidudz 发表于 2012-7-23 22:21

最好的办法就是使用智能指针

使用特权

评论回复
6
sinadz| | 2012-7-24 21:57 | 只看该作者
指针的确是一个很让人头疼的东西

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝