在使用基本指针类型时,因为要手动释放指针指向的内存,常常容易造成内存泄漏,特别是异常分支很多的情况下。而智能指针类型就是将基本指针类型封装成模板类,以便更好地管理内存。 智能指针都包含一个explicit构造函数,因此基本指针类型不能隐式转换成智能指针,需要显式调用。 shared_ptr<doub ...
分类:
编程语言 时间:
2020-03-05 22:22:30
阅读次数:
116
```cpp #include #include static void interfaceOfSharedPtr(); int main(void) { interfaceOfSharedPtr(); return 0; } class Object { public: Object(int id... ...
分类:
编程语言 时间:
2020-02-24 21:06:37
阅读次数:
78
```cpp #include #include #include //auto ptr //shared_ptr //unique_ptr //weak_ptr class Parent; //采用前置声明 using ParentPtr = std::shared_ptr; typedef st... ...
分类:
编程语言 时间:
2020-02-24 21:03:42
阅读次数:
90
```cpp #include #include #include /* //this //调用了两次析构函数, ParentPtr p(this); //智能指针出了作用域后就delete this ,析构了 //所以错了,为了解决这个问题,就需要自身的类继承于 std::enable_share... ...
分类:
编程语言 时间:
2020-02-24 21:03:10
阅读次数:
121
```cpp #include #include #include class Object; typedef std::unique_ptr UniqueObjectPtr; using ObjectPtr = std::shared_ptr; void print(const UniqueObj... ...
分类:
编程语言 时间:
2020-02-24 20:24:28
阅读次数:
73
```cpp #include #include #include //智能指针总结: /* */ void sharedPtrNotice(); class Parent; typedef std::shared_ptr ParentPtr; typedef std::weak_ptr WeakP... ...
分类:
编程语言 时间:
2020-02-24 20:10:34
阅读次数:
106
C++ 11提供的智能指针有:shared_ptr、unique_ptr、weak_ptr。在 头文件 memory 中。 一、new delete 直接管理内存 1、初始化 string * ps = new string // 初始换为一个空string int * pi = new int ; ...
分类:
编程语言 时间:
2020-01-28 10:49:44
阅读次数:
99
0. 1. std::shared_ptr is a smart pointer that retains shared ownership of an object through a pointer. Several shared_ptr objects may own the same obj ...
分类:
编程语言 时间:
2020-01-21 00:40:14
阅读次数:
103
有个需求需要将二进制istream上传到s3上暂存,但苦于没能直接找到接口,官方提供的设置数据块的接口如下: inline void SetBody(const std::shared_ptr<Aws::IOStream>& body) { m_bodyStream = body; } 这个Aws: ...
分类:
Web程序 时间:
2020-01-17 20:49:12
阅读次数:
166
#include <thread> #include <memory> #include <Windows.h> int main() { std::thread t; { std::shared_ptr<int> p(new int(1), [](int* p) { printf("delete\ ...
分类:
编程语言 时间:
2020-01-13 11:01:26
阅读次数:
101