您当前的位置: 首页 >  c++

令狐掌门

暂无认证

  • 3浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ 标准库智能指针auto_ptr源码分析

令狐掌门 发布时间:2020-06-22 23:17:56 ,浏览量:3

       智能指针是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             
关注
打赏
1652240117
查看更多评论
0.0484s