智能指针是C++标准中一个很重要的内容,它帮C++程序员解决了部分内存开辟与释放的问题,使C++程序员可以和java, C#一样不为内存泄露而担心。使用智能指针需要包含头文件#include
C++标准的智能指针主要有4个,auto_ptr, unique_ptr、shared_ptr 和 weak_ptr 。另外boost库,Qt也有智能指针. auto_ptr是C++98提出的比较早的智能指针,在C++11以后已经不建议使用了,但是分析它的源码,对了解智能指针的原理及使用还是很有帮助的。智能指针的实现是一些列模板类与函数对象,操作符重载,以及各种C++技术的综合,想想它能解决C++程序员痛心疾首的内存管理问题,那么它的源码是有必要了解一下的,看了源码才好更清晰的了解智能指针的内部原理,用起来也不至于翻车。
怎么理解智能指针呢,我们可以把它当做一个代理商,我花钱把我的指针交给你去操作,那么程序员呢就多写点代码,让智能指针去管理你的指针。
auto_ptr有什么作用auto_ptr的一大特点就是对于下属数据的唯一控制权,也就是说不准多个auto_ptr控制同一个数据,这样当auto_ptr被删除时,其控制数据也被删除,这时我们再引用其他的auto_ptr时就会出现严重的问题,因此auto_ptr在进行复制构造或者是赋值的时候会进行一个操作:控制权转移。
先看下面一段代码:
#include
#include
using namespace std;
class Student
{
public:
void fun()
{
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?