开发者社区 问答 正文

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

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

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

    2019-07-17 18:54:13 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 有了删除器的概念,就可以用shared_ptr实现管理任意资源,只要这种资源提供了它自己的释放操作,shared_ptr就能够保证自动释放

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

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

    2019-07-17 18:54:13 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等