shared_ptr

2024/4/11 20:48:06

C++智能指针之weak_ptr(保姆级教学)

目录 C智能指针之weak_ptr 概述 作用 本文涉及的所有程序 使用说明 weak_ptr的常规操作 lock(); use_count(); expired(); reset(); shared_ptr & weak_ptr 尺寸 智能指针结构框架 常见使用问题 shared_ptr多次引用同一数据,会导致两次释放同一内…

C++11 新特性 ⑥ | 智能指针 unique_ptr、shared_ptr 和 weak_ptr

目录 1、引言 2、unique_ptr 3、shared_ptr 4、weak_ptr 5、shared_ptr循环引用问题(面试题) VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/detai…

weak_ptr 与 一个难发现的错误(循环依赖问题)笔记

推荐B站视频:7.weak_ptr与一个非常难发现的错误_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18B4y187uL/?p7&spm_id_frompageDriver&vd_sourcea934d7fc6f47698a29dac90a922ba5a3一、weak_ptr weak_ptr并不拥有所有权并不能调用 -> 和 解引…

C++11 shared_ptr类型智能指针学习

智能指针和普通指针的用法类似,但是智能指针可以在适当时机自动释放分配的内存。 C++11有三种类型的智能指针,shared_ptr、unique_ptr 以及 weak_ptr; 先学习shared_ptr类型; shared_ptr<T> 的定义位于<memory>头文件,并位于 std 命名空间中; T 表示指针指…

C++11 shared_from_this学习

最近学习网络变成发现一些C源码库中封装对象时会公有继承enable_shared_from_this&#xff1b; 用一个案例进行说明&#xff0c;案例代码如下&#xff1a; #include <iostream> #include <memory> #include <stdio.h>using namespace std;class C : public…

shared_ptr和unique_ptr区别和联系

shared_ptr 和 unique_ptr区别和联系 shared_ptr 和 unique_ptr区别和联系shared_ptr 类shared_ptr 和 unique_ptr 共有操作shared_ptr 独有操作make_shared 函数unique_ptr 类unique_ptr 独有操作示例程序&#xff1a;头文件 C11 版本出现了很多技术&#xff0c;要学的东西还…

c++ std::shared_ptr的线程安全问题(race condition)

有 3 个 shared_ptr 对象 x、g、n; 两个工作线程&#xff1a; void main(){shared_ptr g(new Foo); // 线程之间共享的 shared_ptr shared_ptr x; // 线程 A 的局部变量 shared_ptr n(new Foo); // 线程 B 的局部变量std::thread([&]{x g; }).detach();std::thread([&…

shared_ptr 与 unique_ptr 的转换 笔记

推荐B站文章&#xff1a; 6.shared_ptr与unique_ptr_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV18B4y187uL?p6&vd_sourcea934d7fc6f47698a29dac90a922ba5a3我的往期文章&#xff1a; 独占指针&#xff1a;unique_ptr 与 函数调用-CSDN博客https://blog.csdn.n…

C++智能指针之shared_ptr原理和应用举例

shared_ptr是C中的智能指针&#xff0c;它提供了共享所有权的能力。以下是shared_ptr的原理和特点&#xff1a; 先说原理&#xff1a; 1. shared_ptr使用引用计数的方式来管理对象的生命周期。 2. 每个shared_ptr都有一个关联的引用计数&#xff0c;用于统计有多少个指针共享…

C++智能指针shared_ptr使用详解

shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象。 ​ shared_ptr使用引用计数,每一个shared_ptr的拷贝都指向相同的内存。每使用它一次,内部的引用计数加1,每析构一次,内部的引用计数减1,减为0时,释放所指向的堆内存。shared_ptr内部的引用计数是…

std::shared_ptr(基础、仿写、安全性)

目录 一、c参考手册 1、解释说明 2、代码示例 3、运行结果 二、对std::shared_ptr分析 1、shared_ptr基础 2、创建shared_ptr实例 3、访问所指对象 4、拷贝和赋值操作 5、检查引用计数 三、仿写std::shared_ptr代码 1、单一对象 2、数组对象 四、shared_ptr遇到问…

C++拾遗--智能指针

C拾遗--智能指针 前言 内存泄露是常见的问题&#xff0c;新标准中的智能指针从根本上解决了这个问题。所谓的智能指针&#xff0c;其智能性体现在&#xff1a;当没有对象使用某块动态分配的内存时&#xff0c;那就自动释放这片内存。 智能指针 下面这段程序可耗尽内存&#…

C++基础之智能指针auto_ptr/unique_ptr/shared_ptr/weak_ptr

auto_ptr&#xff0c;unique_ptr&#xff0c;shared_ptr和weak_ptrC 库提供以下类型的智能指针实现&#xff1a;auto_ptrunique_ptrshared_ptrweak_ptr它们都在内存头文件中声明。auto_ptr从C 11开始&#xff0c;不推荐使用此类模板。unique_ptr是一个具有类似功能但具有更高安…

Modern C++ std::shared_ptr线程安全吗

通过《Modern C std::shared_ptr的实现原理》我们看到引用计数和weak计数在链接pthread的情况下都是原子操作&#xff0c;而不链接的情况必是单线程也没有竞争存在。 可以看到shared_ptr本身是线程安全的&#xff0c;但是通过它操作被管理的对象就必须自己上锁以保证没有数据竞…