文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>实现一个简单的智能指针

实现一个简单的智能指针

时间:2010-12-19  来源:霞光照耀

这样带来的后果就是,如果任意一个对象释放了这一块内存,那么其他的对象再来操作这块内存的时候就会发生预料不到的结果。

为了避免对象中保存野指针从而引发的错误,提出了智能指针,  它能实现多个对象共享内存的自释放。

  其实这种实现有点类似于delphi中的接口,到处传来传去的,最后自释放,就是因为接口有引用计数,当引用计数为1的时候就把对象释放掉。

  C++中这种实现(C++ Primer书上借鉴来的),有几个比较巧妙的地方

  • Has_Ptr这个类其实是想保存一个int *的指针,为了避免悬垂指针的出现,我们使用了 I_Pointer这个类把悬垂指针包了一下,因此在Has_Ptr这个类的Public接口中不会出现I_Pointer,只会出现int *
  • 事实上也不能出现I_Pointer, 因为Pointer的构造函数定义成Private,不允许在外面构造,只能在friend类中构造,I_Pointer是专门为Has_Ptr实现的
  • 要记住三元组(拷贝构造,赋值操作,析构),当其中一个需要有特殊操作的时候,其他的也需要有特殊操作,这个要形成定势思维。
相关阅读 更多 +
排行榜 更多 +
猎枪行动

猎枪行动

飞行射击 下载
导弹袭击

导弹袭击

飞行射击 下载
猫猫突围封锁要塞新手打法

猫猫突围封锁要塞新手打法

飞行射击 下载