300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > c语言 ptr 用法 C++之智能指针std::shared_ptr简单使用和理解

c语言 ptr 用法 C++之智能指针std::shared_ptr简单使用和理解

时间:2023-07-31 13:26:12

相关推荐

c语言 ptr 用法 C++之智能指针std::shared_ptr简单使用和理解

1智能指针std::shared_ptr相关知识和如何使用

我们这里先说下智能指针std::shared_ptr,因为我看到我我们项目c++代码里面用得很多,我不是不会,所以记录学习下

先让ubuntu终端支持c++11,如果自己的电脑还没配置号,可以先看下我的这篇博客linux之让终端支持C++11/14编译cpp文件

1)所在的头文件

#include

2)介绍:

shared_ptr是一种智能指针(smart pointer),作用有如同指针,但会记录有多少个shared_ptrs共同指向一个对象。这便是所谓的引用计数(reference counting),比如我们把只能指针赋值给另外一个对象,那么对象多了一个智能指针指向它,所以这个时候引用计数会增加一个,我们可以用shared_ptr.use_count()函数查看这个智能指针的引用计数,一旦最后一个这样的指针被销毁,也就是一旦某个对象的引用计数变为0,这个对象会被自动删除,当我们程序结束进行return的时候,智能指针的引用计数会减1,不知道我理解有没有问题.有的话请老铁们指出.

3)share_ptr的三种初始化方法

1.通过一个指向堆上申请的空间的指针初始化(切记不要用栈上的指针,否则,当智能指针全部释放控制权(栈中的对象离开作用域本身就会析构一次),将会析构对象,导致出错)

比如如下

int a = new int(100);

std::shared_ptr ptr(a); //我们不能写成std::shared_ptr ptr = a;这样写错误,不行你编译运行看下,编译不过

2.通过make_shared函数得到

std::shared_ptr ptr1 = std::make_shared(

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。