如何在实际项目中运用智能指针std::unique_ptr和std::shared_ptr?

更新于
2026-10-09 10:13:51
0阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2151个文字,预计阅读时间需要9分钟。

如何在实际项目中运用智能指针std::unique_ptr和std::shared_ptr?

1+ Smart Pointer+ 思想+:+ 一个人认为+ Smart Pointer+ 实际上+ 是+ 一个+ 对+ 基本指针+ 类型+ 的+ 封装+ 类+,+ 并+ 提供了+ ->+ 和+ *+ 两种+ 操作+,+ 使+ 其+ 能+ 处理+ 基本指针+ 的+ 功能+。

1 smart pointer 思想

​ 个人认为smart pointer实际上就是一个对原始指针类型的一个封装类,并对外提供了-> 和 * 两种操作,使得其能够表现出原始指针的操作行为。

​ 要理解smart pointer思想首先要了解一个概念RAII(Resource Acquisition Is Initialization), 直译为资源获取即初始化,核心理念为在对象创建时分配资源,而在对象销毁时释放资源.

​ 根据RAII理念,如果对象创建在栈(stack)上,由于栈上的对象在销毁是会自动调用析构函数,因此仅仅需要在构造函数内完成资源分配,而在析构函数内完成资源释放,此时程序员就不需要自己关心资源的释放问题。

阅读全文

本文共计2151个文字,预计阅读时间需要9分钟。

如何在实际项目中运用智能指针std::unique_ptr和std::shared_ptr?

1+ Smart Pointer+ 思想+:+ 一个人认为+ Smart Pointer+ 实际上+ 是+ 一个+ 对+ 基本指针+ 类型+ 的+ 封装+ 类+,+ 并+ 提供了+ ->+ 和+ *+ 两种+ 操作+,+ 使+ 其+ 能+ 处理+ 基本指针+ 的+ 功能+。

1 smart pointer 思想

​ 个人认为smart pointer实际上就是一个对原始指针类型的一个封装类,并对外提供了-> 和 * 两种操作,使得其能够表现出原始指针的操作行为。

​ 要理解smart pointer思想首先要了解一个概念RAII(Resource Acquisition Is Initialization), 直译为资源获取即初始化,核心理念为在对象创建时分配资源,而在对象销毁时释放资源.

​ 根据RAII理念,如果对象创建在栈(stack)上,由于栈上的对象在销毁是会自动调用析构函数,因此仅仅需要在构造函数内完成资源分配,而在析构函数内完成资源释放,此时程序员就不需要自己关心资源的释放问题。

阅读全文