首先要说明的一个问题是:如何安全地将this指针返回给调用者。一般来说,我们不能直接将this指针返回。想象这样的情况,该函数将this指针返回到外部某个变量保存,然后这个对象自身已经析构了,但外部变量并不知道,此时如果外部变量使用这个指针,就会使得程序崩溃。 使用智能指针shared_ptr看起来 ...
分类:
其他好文 时间:
2018-06-02 00:35:47
阅读次数:
182
C++智能指针 shared_ptr shared_ptr 是一个标准的共享所有权的智能指针, 允许多个指针指向同一个对象. 定义在 memory 文件中(非memory.h), 命名空间为 std. std::shared_ptr<int> sp1 = std::make_shared<int>( ...
分类:
编程语言 时间:
2018-05-18 13:44:13
阅读次数:
148
std::shared_ptr 是通过指针保持对象共享所有权的智能指针。多个 shared_ptr 对象可占有同一对象大概实现了一下,主要实现原理为,共享指针内部持有堆资源的指针以及引用计数的指针,通过对这两个指针的维护,达到多个共享对象对同一资源的控制 实现主要分为三个文件。share_ptr.h ...
分类:
其他好文 时间:
2018-05-13 01:08:37
阅读次数:
168
最近看代码,智能指针用的比较多,自己平时用的少,周末自己总结总结。方便后续使用。 std::shared_ptr大概总结有以下几点: (1) 智能指针主要的用途就是方便资源的管理,自动释放没有指针引用的资源。 (2) 使用引用计数来标识是否有多余指针指向该资源。(注意,shart_ptr本身指针会占 ...
分类:
其他好文 时间:
2018-05-12 11:14:20
阅读次数:
257
unique_ptr ? 一个unique_ptr拥有它所管理的对象,与shared_ptr不同,unique_ptr指向的对象只能有一个用户。当unique_ptr被销毁后,它所指向的对象也被销毁。 ? 与shared_ptr不同,没有类似make_shared_ptr的标准函数返回一个unqiu ...
分类:
编程语言 时间:
2018-04-25 20:56:52
阅读次数:
174
shared_ptr和new的结合使用 ? 如果我们不初始化一个智能指针,它就会被初始化一个空指针。 ? 一个shared_ptr默认初始化为一个空指针。我们也可以使用new返回的指针来初始化一个shared_ptr: ? 接受指针参数的智能指针构造函数是explicit的。因此,我们不能将一个内置 ...
分类:
编程语言 时间:
2018-04-25 20:12:05
阅读次数:
253
#include<bits/stdc++.h>using namespace std;void swap(shared_ptr<int>a,shared_ptr<int>b) { int t; t=*a,*a=*b,*b=t; }int main(){ /*auto_ptr; unique_ptr; ...
分类:
其他好文 时间:
2018-04-22 22:39:47
阅读次数:
184
从零开始写STL 智能指针 智能指针的分类及其特点: scoped_ptr:初始化获得资源控制权,在作用域结束释放资源 shared_ptr: 引用计数来控制共享资源,最后一个资源的引用被释放的时候会析构 unique_ptr: 只能有一个持有资源引用的对象 weak_ptr:eak_ptr也维护了 ...
分类:
其他好文 时间:
2018-03-29 19:11:57
阅读次数:
171
```C++ weak_ptr wp1; { shared_ptr ptr1(new Cls1);//共享指针 wp1 = ptr1;//临时共享指针 std::cout ...
分类:
其他好文 时间:
2018-03-13 15:45:35
阅读次数:
205
动态内存与智能指针 【智能指针】头文件#include<memory>shared_ptr: 允许多个指针指向同一个对象unique_ptr: "独占"所指向的对象weak_ptr:伴随类,它是一种弱引用,指向shared_ptr所管理的对象。 ...
分类:
其他好文 时间:
2018-03-13 01:12:07
阅读次数:
170