一. make系列函数 (一)三个make函数 1. std::make_shared:用于创建shared_ptr。GCC编译器中,其内部是通过调用std::allocate_shared来实现的。 2. std::make_unique:C++14中加入标准库。 3. std::allocate ...
分类:
其他好文 时间:
2019-10-05 22:25:39
阅读次数:
129
一. weak_ptr的概况 (一)weak_ptr的创建 1. 直接初始化:weak_ptr<T> wp(sp); //其中sp为shared_ptr类型 2. 赋值: wp1 = sp; //其中sp为shared_ptr类型 wp2 = wp1; //其中wp1为weak_ptr类型 (二)常 ...
分类:
其他好文 时间:
2019-10-05 01:06:44
阅读次数:
136
一. shared_ptr的基本用法 (一)与unique_ptr的比较 比较 shared_ptr unique_ptr 备注 初始化 ①shared_ptr<T> sp; sp.reset(new T()); ②shared_ptr<T> sp(new T()); ③shared_ptr<T> ...
分类:
其他好文 时间:
2019-10-04 16:52:00
阅读次数:
164
引文:C++对指针的管理提供了两种解决问题的思路:1.不允许多个对象管理一个指针2.允许多个对象管理一个指针,但仅当管理这个指针的最后一个对象析构时才调用deleteps:这两种思路的共同点就是只允许delete一次,下面将讨论的shared_ptr就是采用思路1实现的ps:智能指针不是指针,而是类... ...
分类:
编程语言 时间:
2019-09-21 17:16:33
阅读次数:
105
有三个智能指针,auto_ptr(弃用)、unique_ptr、shared_ptr. 智能指针可以自动跟踪动态内存,在其过期时自动释放。 一、shared_ptr 用于new创建的对象,而不适用于new[]创建的对象, 用于多个指针共享一个地址的情况。 二、unique_ptr 用于只存留一个指针 ...
分类:
其他好文 时间:
2019-09-08 09:52:43
阅读次数:
79
前言 C++里面的四个智能指针: auto\_ptr, unique\_ptr,shared\_ptr, weak\_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用。 C++11智能指针介绍 智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期 ...
分类:
编程语言 时间:
2019-09-02 10:07:29
阅读次数:
114
引入 shared_ptr 是c++为了提高安全性而添加的智能指针,方便了内存管理。 特点 shared_ptr 是通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可占有同一对象。这便是所谓的引用计数(reference counting)。一旦最后一个这样的指针被销毁,也就是 ...
分类:
其他好文 时间:
2019-09-01 16:51:16
阅读次数:
88
智能指针(shared_ptr,unique_ptr)作为函数参数或者返回值时的一些注意事项 当智能指针作为函数的参数或者返回值时,一直在纠结到底是用智能指针对象本身还是用原始指针。Herb Sutter大师的文章很好的解决了这个疑惑,参见网址: https://herbsutter.com/201 ...
分类:
其他好文 时间:
2019-08-30 15:56:49
阅读次数:
424
shared_ptr是一个最像指针的“智能指针”,是boost.smart_ptr库中最有价值、最重要的组成部分,也是最有用的,Boost库的许多组件——甚至还包括其他一些领域的智能指针都使用了shared_ptr,所以它被毫无悬念地收入了C++11标准。 shared_ptr与scoped_ptr ...
分类:
其他好文 时间:
2019-08-20 21:50:45
阅读次数:
86
四种智能指针的讲解(auto_ptr, second_ptr, shared_ptr, weak_ptr),包含源代码:https://blog.csdn.net/sinat_36118270/article/details/69061348 shared_ptr, unique_ptr, weak ...
分类:
编程语言 时间:
2019-07-29 17:36:30
阅读次数:
172