1、C++98的智能指针 2、C++11的智能指针 智能指针本质是一个模板类 (1)三种智能指针 头文件 <memory> unique_ptr 共享的智能指针 shared_ptr 独占的智能指针 weak_ptr 弱引用的智能指针 (2)explict关键字 C++11之后的智能指针的构造函数都 ...
分类:
编程语言 时间:
2018-09-06 14:47:09
阅读次数:
261
整理一下c++中shared_ptr,weak_ptr,unique_ptr三种指针的使用案例和注意事项,让程序资源更加案例,在标准库中,需要包含<memory>,在boost库中, 一. 智能指针unique_ptr 与shared_ptr相似,区别在于unique_ptr是独立拥有对象权,因此只 ...
分类:
编程语言 时间:
2018-08-18 19:37:16
阅读次数:
220
在语句#3中,p2接管string对象的所有权后,p1的所有权将被剥夺。前面说过,这是好事,可防止p1和p2的析构函数试图刪同—个对象; 但如果程序随后试图使用p1,这将是件坏事,因为p1不再指向有效的数据。 下面来看使用unique_ptr的情况: 编译器认为语句#6非法,避免了p3不再指向有效数 ...
分类:
编程语言 时间:
2018-07-22 17:41:56
阅读次数:
181
参考链接:https://blog.csdn.net/kang_tju/article/details/76515894 https://www.cnblogs.com/TenosDoIt/p/3456704.html 1.auto_ptr: 输出结果: 2.unique_ptr:独享所有权的语义 ...
分类:
其他好文 时间:
2018-07-14 14:51:30
阅读次数:
213
最近在写代码的时候,出现一个莫名奇妙的错误,查找了一个多小时,代码功能方面没有错误,但是出现一个看不懂的额问题,终于发现错误所在,原来是头文件循环引用了!!! 铭记:实在找不出代码问题所在,不妨查看一下头文件引用是否错误! 我以为我找对问题了,其实不是这个原因。。。 真正的原因是unique_ptr ...
分类:
其他好文 时间:
2018-07-03 23:54:29
阅读次数:
181
unique_ptr 替代了原来的auto_ptr,指向对象具有唯一性,即同一时间只能有unique_ptr指向给定对象(和auto_ptr不同是禁止拷贝语义,通过移动语义替代) unique_ptr对象生命周期与其作用域范围保持一致,从创建直至其离开作用域 unique_ptr 指针和其所绑定对象 ...
分类:
编程语言 时间:
2018-05-18 14:07:18
阅读次数:
177
对于动态申请的内存,C++语言为我们提供了new和delete运算符, 而没有像java一样,提供一个完整的GC机制,因此对于我们申请的动态内存,我们需要时刻记得释放,且不能重复释放,释放后不能再去使用... 因此在使用时造成很多不便,且容易出现很多问题,一旦出问题就造成core dump,程序直接 ...
分类:
其他好文 时间:
2018-04-30 11:42:09
阅读次数:
275
unique_ptr ? 一个unique_ptr拥有它所管理的对象,与shared_ptr不同,unique_ptr指向的对象只能有一个用户。当unique_ptr被销毁后,它所指向的对象也被销毁。 ? 与shared_ptr不同,没有类似make_shared_ptr的标准函数返回一个unqiu ...
分类:
编程语言 时间:
2018-04-25 20:56:52
阅读次数:
174
C++的auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理,该智能指针在C++11中已经被弃用,转而由unique_ptr替代, 那这次使用和实现,就具体讲一下auto_ptr被弃用的原因,(编译平台:Linux centos 7.0 编译器:gcc 4.8.5 ) 首先使 ...
分类:
其他好文 时间:
2018-04-23 00:04:42
阅读次数:
235
#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