指针内存释放问题

[复制链接]
 楼主| 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
无冕之王 发表于 2012-7-24 21:51 | 显示全部楼层
使用智能指针。SmartPointer
baidudz 发表于 2012-7-23 22:21

最好的办法就是使用智能指针
sinadz 发表于 2012-7-24 21:57 | 显示全部楼层
指针的确是一个很让人头疼的东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则

274

主题

2106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

274

主题

2106

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部