智能指针c++动态内存
在看c++primer,里面有一个总结“如果你使用的智能指针管理的资源不是new分配的内存,记得传递给他一个删除器”这个不是new分配的是指像其他函数分配的动态内存,如兼容c语言留下来的malloc和allocator类吗?
补充一下楼上的回答, 你这里管理的是 “资源”, 这个资源可以是 “文件”, “设备”, ”某个资源类“, 这些东西在删除的时候,不一定所有必要操作都能在析构函数中做完, 所以需要自己制定一个删除器去做相应工作。
有了删除器的概念,就可以用shared_ptr实现管理任意资源,只要这种资源提供了它自己的释放操作,shared_ptr就能够保证自动释放
不仅仅能够管理内存资源,而是成为一个"万能"的资源管理工具.
这里"不是new分配的内存"指的是用new分配的非内存资源,如一个对象
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。