欢迎光临散文网 会员登陆 & 注册

Effective C++ 第十三条 Use object to manage resources.

2023-01-16 01:26 作者:九思519  | 我要投稿

以对象管理资源

正常情况下,我们通常采用指针管理资源,如下

一般来说,这样是大多数人的正常操作,但是考虑到一些特殊情况,比如在实例中未写出来的 statements 中可能有其他语句会导致控制流在执行 delete ptr; 之前离开函数 fun 而造成资源浪费。所以当前有解决方案是使用对象来管理资源,在本例子中,就是使用智能指针来管理资源。

智能指针如 auto_ptr、shared_ptr 都是类封装的指针,有析构函数,无论在函数 fun 中是否提前结束,在程序结束之前,对象 ptr 就会执行析构函数从而释放资源,相较于普通指针,智能指针更为安全。

注意:在现在的标准中 auto_ptr 已经废弃了,不再使用了。

关于智能指针的介绍这里推荐看 现代C++教程,https://changkun.de/modern-cpp/zh-cn/05-pointers。

Effective C++ 第十三条 Use object to manage resources.的评论 (共 条)

分享到微博请遵守国家法律