如何在实际项目中运用智能指针std::unique_ptr和std::shared_ptr?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2151个文字,预计阅读时间需要9分钟。
1+ Smart Pointer+ 思想+:+ 一个人认为+ Smart Pointer+ 实际上+ 是+ 一个+ 对+ 基本指针+ 类型+ 的+ 封装+ 类+,+ 并+ 提供了+ ->+ 和+ *+ 两种+ 操作+,+ 使+ 其+ 能+ 处理+ 基本指针+ 的+ 功能+。
1 smart pointer 思想 个人认为smart pointer实际上就是一个对原始指针类型的一个封装类,并对外提供了-> 和 * 两种操作,使得其能够表现出原始指针的操作行为。
要理解smart pointer思想首先要了解一个概念RAII(Resource Acquisition Is Initialization), 直译为资源获取即初始化,核心理念为在对象创建时分配资源,而在对象销毁时释放资源.
根据RAII理念,如果对象创建在栈(stack)上,由于栈上的对象在销毁是会自动调用析构函数,因此仅仅需要在构造函数内完成资源分配,而在析构函数内完成资源释放,此时程序员就不需要自己关心资源的释放问题。
本文共计2151个文字,预计阅读时间需要9分钟。
1+ Smart Pointer+ 思想+:+ 一个人认为+ Smart Pointer+ 实际上+ 是+ 一个+ 对+ 基本指针+ 类型+ 的+ 封装+ 类+,+ 并+ 提供了+ ->+ 和+ *+ 两种+ 操作+,+ 使+ 其+ 能+ 处理+ 基本指针+ 的+ 功能+。
1 smart pointer 思想 个人认为smart pointer实际上就是一个对原始指针类型的一个封装类,并对外提供了-> 和 * 两种操作,使得其能够表现出原始指针的操作行为。
要理解smart pointer思想首先要了解一个概念RAII(Resource Acquisition Is Initialization), 直译为资源获取即初始化,核心理念为在对象创建时分配资源,而在对象销毁时释放资源.
根据RAII理念,如果对象创建在栈(stack)上,由于栈上的对象在销毁是会自动调用析构函数,因此仅仅需要在构造函数内完成资源分配,而在析构函数内完成资源释放,此时程序员就不需要自己关心资源的释放问题。

