智能指针
写有意思的代码
这个作者很懒,什么都没留下…
展开
-
C++智能指针2——共享指针shared_ptr详解
目录简介示例代码输出创建定义删除器示例处理数组销毁其他资源接口列表隐式指针转换比较运算符获取删除器别名构造函数make_shared()和allocate_shared()强制类型转换线程安全的接口使用错误简介共享指针shared_ptr是具有共享所有权语义的智能指针。 每当共享指针shared_ptr的最后一个所有者...原创 2020-01-29 23:03:18 · 21832 阅读 · 0 评论 -
C++智能指针5——自动指针auto_ptr(弃用)详解
与C++ 11不同,C++ 98标准库仅提供一个智能指针类auto_ptr,自C++ 11起不推荐使用。它的目标是提供unique_ptr现在所做的语义。原创 2020-02-02 08:13:44 · 632 阅读 · 0 评论 -
C++智能指针4——唯一指针unique_ptr详解
C++11标准库提供的唯一指针unique_ptr有助于避免发生异常时的资源泄漏。它实现了专有所有权的概念,这意味着它可以确保一个对象及其关联资源一次只能由一个指针"拥有''。当此所有者被销毁或变空或开始拥有另一个对象时,先前拥有的对象也将被销毁,所有相关资源都将被释放。唯一指针unique_ptr继承了自动指针auto_ptr(该类最初是C++ 98引入的,但现在已弃用)。 唯一指针unique_ptr提供了一个简单明了的接口,与自动指针auto_ptr相比,它更不容易出错。原创 2020-02-01 19:01:22 · 6589 阅读 · 1 评论 -
C++智能指针3——弱指针weak_ptr详解
共享指针shared_ptr指针存在的一些问题可以有弱指针weak_ptr解决。原创 2020-01-30 11:21:04 · 6851 阅读 · 0 评论 -
C++智能指针1——概述
问题从C开始,指针就很重要,但却是麻烦的根源——要确保它们的生存期与它们所引用的对象的生存期相匹配,特别是当多个指针引用同一个对象时。解决方法避免此类问题的常用方法是使用“智能指针”。智能指针可以“知道”它是否是指向对象的最后一个指针,并且仅当该指针作为对象的“最后所有者”被销毁时,才删除关联的对象。分类从C++ 11开始,C++标准库提供了两种类型的智能指针:shared...原创 2020-01-18 21:12:26 · 288 阅读 · 0 评论 -
C++智能指针6——总结
目录性能问题使用问题C++ 11提供了智能指针的两个概念:shared_ptr用于共享所有权 unique_ptr用于独占所有权后者代替了现在不推荐使用的C++ 98的auto_ptr。性能问题为什么C++标准库提供不止一种智能指针?答案与共享指针的性能影响有关。shared_ptr是通过非侵入性方法实现的,这意味着该类管理的对象不必满足特定的要求,例如通用基类。最...原创 2020-02-02 10:44:52 · 312 阅读 · 0 评论