_Mutex_base _Sp_counted_base_Impl _Sp_deleter __shared_count __weak_count __shared_ptr shared_ptr __weak_ptr weak_ptr 类型声明 继承关系 其中,很明显的可以看出,shared_ptr ...
分类:
编程语言 时间:
2018-06-16 20:01:55
阅读次数:
245
为了解决C++内存泄漏的问题,C++11引入了智能指针(Smart Pointer)。 智能指针的原理是,接受一个申请好的内存地址,构造一个保存在栈上的智能指针对象,C++中有一个重要原则,在函数结束时(不论是正常返回,还是因为异常除法的对战回退),会将所有栈对象销毁,也就是会调用所有栈对象的析构函 ...
分类:
编程语言 时间:
2018-06-15 13:20:17
阅读次数:
164
部分参考地址https://blog.csdn.net/yanglingwell/article/details/56011576 auto_ptr是c++标准库里的智能指针,但是具有以下几个明显的缺陷,使用时要注意 1.就是所谓的控制权转移,下面是模拟代码 在赋值运算符重载和拷贝构造函数中将资源转 ...
分类:
其他好文 时间:
2018-06-09 13:28:29
阅读次数:
218
前言 最近一段时间看代码,里面用到了C++的智能指针,发现自己竟然看不懂代码在表达什么意思,所以专门抽个时间恶补一下自己这方面欠缺的知识。 参考书籍《深入应用C++11:代码优化与工程级应用》 智能指针 C++11提供了3种智能指针: std::shared_ptr、 std::uniq_ptr s... ...
分类:
编程语言 时间:
2018-06-05 15:19:29
阅读次数:
247
我们之前在 C++ 的学习中学习了有关智能指针的知识。那么智能指针的意义是现代 C++ 开发库中最重要的类模板之一;是 C++ 中自动内存管理的主要手段,它能够在很大程度上避开内存相关的问题。在 STL 标准库中的智能指针为 auto_ptr,它的特点是:1、生命周期结束时,销毁指向的内存空间;2、不能指向堆数组,只能指向堆对象(变量);3、一片堆空间只属于一个智能指针对象;4、多个智能指针对象不能指向同一片堆空间。
分类:
其他好文 时间:
2018-06-02 21:34:20
阅读次数:
210
首先要说明的一个问题是:如何安全地将this指针返回给调用者。一般来说,我们不能直接将this指针返回。想象这样的情况,该函数将this指针返回到外部某个变量保存,然后这个对象自身已经析构了,但外部变量并不知道,此时如果外部变量使用这个指针,就会使得程序崩溃。 使用智能指针shared_ptr看起来 ...
分类:
其他好文 时间:
2018-06-02 00:35:47
阅读次数:
182
我们在程序开发中,难免会遇到内存泄漏。那么什么是内存泄漏呢?就是动态申请堆空间,用完后不归还。在 C++ 语言中没有垃圾回收机制,在后续的语言如 Java、C# 等高级语言中就存在垃圾回收机制,指针无法控制所指堆空间的生命周期。
分类:
其他好文 时间:
2018-05-23 20:37:26
阅读次数:
162
我们学习C++的时候,想必都会听说一个叫智能指针的东西,在初听这个词的时候,我们都难免不被“智能”两个字所吸引,感觉它会比较高级,让人有种忍不住想用一把的冲动。 但事实上,它可能并没有我们所想的那样“智能”、好用,它本质上其实就是一个对象,它去接管了原指针所管理的资源。但这里单单用一个对象就想有“智 ...
分类:
其他好文 时间:
2018-05-20 19:29:49
阅读次数:
191
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