开发者社区> 问答> 正文

关于c++智能指针管理的资源问题

智能指针c++动态内存
在看c++primer,里面有一个总结“如果你使用的智能指针管理的资源不是new分配的内存,记得传递给他一个删除器”这个不是new分配的是指像其他函数分配的动态内存,如兼容c语言留下来的malloc和allocator类吗?

展开
收起
a123456678 2016-03-06 10:42:19 2332 0
2 条回答
写回答
取消 提交回答
  • 补充一下楼上的回答, 你这里管理的是 “资源”, 这个资源可以是 “文件”, “设备”, ”某个资源类“, 这些东西在删除的时候,不一定所有必要操作都能在析构函数中做完, 所以需要自己制定一个删除器去做相应工作。

    2019-07-17 18:54:13
    赞同 展开评论 打赏
  • 有了删除器的概念,就可以用shared_ptr实现管理任意资源,只要这种资源提供了它自己的释放操作,shared_ptr就能够保证自动释放

    不仅仅能够管理内存资源,而是成为一个"万能"的资源管理工具.

    这里"不是new分配的内存"指的是用new分配的非内存资源,如一个对象

    2019-07-17 18:54:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载