Advertisement

C++ 智能指针解析

阅读量:

C++ 智能指针详解
一、简介

因为 C++ 编程语言缺乏内置的内存自动回收机制,在每次为程序新分配了内存量后都需要由程序员自行负责调用 delete 语句来释放这些内存空间。每当程序员为新分配的内存单元调用 new 关键字时(即为这些新生成的内存单元分配存储空间),如果此时忘记释放这些内存单元(即未及时调用相应的 release 或者删除操作),将会导致操作流程变得过于繁琐(即出现复杂的逻辑循环或错误处理),最终结果是没有释放这些内存单元(即在程序正常结束前仍有未被处理的有效内存量),这种情况在实际应用中较为常见(即经常出现这类问题)。

借助智能指针对此类问题提供了一种有效的解决方案。本文将重点介绍常见的几种智能指针及其应用方法。包括:std::auto_ptr, boost::scoped_ptr, boost::shared_ptr, boost::scoped_array, boost::shared_array, boost::weak_ptr以及boost::intrusive_ptr等类型的特点及使用场景。你或许会疑惑为什么会有如此多的不同实现方式?通过阅读本文内容后相信你会对这些问题有清晰的认识。

下面就按照顺序讲解如上 7 种智能指针(smart_ptr)。

二、具体使用

1、总括

从编译器的角度来看,智能指针本质上是一个栈对象而非传统意义

全部评论 (0)

还没有任何评论哟~