上一篇线程池里,有一个返回std::shared_ptr<T>对象,他其实是c++里面的智能指针 std::shared_ptr std::shared_ptr大概总结有以下几点: (1) 智能指针主要的用途就是方便资源的管理,自动释放没有指针引用的资源。 (2) 使用引用计数来标识是否有多余指针指 ...
分类:
编程语言 时间:
2019-07-28 17:17:31
阅读次数:
102
1. 几种智能指针 1. auto_ptr: c++11中推荐不使用他(放弃) 2. shared_ptr: 每添加一次引用 就+1,减少一次引用,就-1;做到指针进行共享 3. unique_ptr: 一个指针同时只能有一个使用者使用 4. weaked_ptr: 与shared_ptr搭配使用 ...
分类:
编程语言 时间:
2019-05-02 21:48:23
阅读次数:
209
1. 几种智能指针 1. auto_ptr: c++11中推荐不使用他 2. shared_ptr: 每添加一次引用 就+1,减少一次引用,就-1;做到指针进行共享 3. unique_ptr: 一个指针同时只能有一个使用者使用 4. weaked_ptr: 与shared_ptr搭配使用 1.1 ...
分类:
编程语言 时间:
2019-04-30 01:18:33
阅读次数:
152
```c++ include include using namespace std; struct A; struct B; struct A { shared_ptr B_ptr; A() { cout A_ptr; B() { cout ap(new A()); // ap 的引用计数是1 s ...
分类:
其他好文 时间:
2019-04-09 00:25:35
阅读次数:
156
enable_shared_from_this是一个模板类,定义于头文件<memory>,其原型为: template< class T > class enable_shared_from_this; std::enable_shared_from_this 能让一个对象(假设其名为 t ,且已被 ...
分类:
其他好文 时间:
2019-04-08 13:57:40
阅读次数:
140
要确保用 new 动态分配的内存空间在程序的各条执行路径都能被释放是一件麻烦的事情。C++ 11 模板库的 <memory> 头文件中定义的智能指针,即 shared _ptr 模板,就是用来部分解决这个问题的。 只要将 new 运算符返回的指针 p 交给一个 shared_ptr 对象“托管”,就 ...
分类:
编程语言 时间:
2019-03-16 09:19:29
阅读次数:
248
智能指针是行为类似于指针的类对象,但这种对象还有其他功能。 本节介绍三个可帮助管理动态内存分配的智能指针模板(auto_ptr、unique_ptr和shared_ptr)。 void remodel(std:string & str) { std::string * ps = new std::s ...
分类:
编程语言 时间:
2019-03-08 00:28:48
阅读次数:
222
1.evpp https://blog.csdn.net/zieckey/article/details/70245013 2.enable_shared_from_this shared_ptr接收裸指针,更改引用计数。 shared_ptr接收shared_ptr,更改引用计数。 在类的内部获取 ...
分类:
其他好文 时间:
2019-02-14 11:55:13
阅读次数:
135
`std::shared_ptr`智能指针是c++11一个相当重要的特性,可以极大地将开发者从资源申请/释放的繁重劳动中解放出来。 然而直到c++17前 都有一个严重的限制,那就是它并不支持动态数组: 错误的原因很明显,然而 的就没有那么好找了,究其原因,是因为 对非数组类型都使用 释放资源,显然这 ...
分类:
编程语言 时间:
2019-02-01 20:38:44
阅读次数:
226
5.2.1 Class shared_ptr shared_ptr提供了一种强大的能力:当对象被多个指针指向时,如若需要释放,仅仅需要赋值nullptr即可使其引用计数减1,而不用担心显示delete后在其他模块的指针失效。先写点简单操作。 相关函数,仅限shared_ptr相关,不包括与weak, ...
分类:
其他好文 时间:
2019-01-27 00:24:34
阅读次数:
228