以tr是用来智能管理内存的,shared_ptr的 构造函数,拷贝构造,拷贝赋值 这三个动作都会导致 引用计数的增加,析构函数,移动拷贝,移动赋值 这三个动作都会导致 引用计数的减少。当引用计数为 0 时,指向的资源被释放,但是要记得自行把shared_ptr置空,它不会像QPointer那样进行自动置空动作。weak_ptrshared_ptr
原创 2022-09-23 13:47:37
130阅读
最近接触智能指针比较多,对智能指针的使用做下基本的总结。 shared_ptr 是C++11提供的一种智能指针类,本质上是一个类,具有构造函数和析构函数,于是能够自动释放没有指针引用的资源。 其核心实现便是计数。 每个 shared_ptr 对象在内部指向两个内存位置:1、指向对象的指针。2、用于控
原创 2021-08-02 16:45:44
1287阅读
好多细节要注意!!!#include<iostream>#include<stdlib.h>//C++11//shared_ptr:功能全,支持拷贝,引用计数。设计复杂,循环引用namespace juju{ template<class T> class shared_ptr { public: shared_ptr(T* ptr) ...
原创 2021-08-10 10:22:03
271阅读
shared_ptr早期叫做counted_ptr,它实现了引用计数型的智能指针,与scoped_ptr一样包装了new操作符在堆上分配的动态对象,但可以被自由地拷贝和赋值。同时它弥补了auto_ptr因为转移语义而不能把指针作为STL容器元素的缺陷。 share_ptr是强引用,像铁丝绑住堆上的对象,只要有一个指向x对象的shared_ptr存在,该x对象就不会析构,它是原子操作,没有用锁...
原创 2023-04-10 19:44:46
102阅读
总结1. reset(),参数为空时,会释放shared_ptr所拥有的对象,释放后执行get()会返回fal
原创 2022-12-14 10:59:36
470阅读
std::shared_ptr<Conn> conn_;
转载 2019-11-15 09:15:00
258阅读
2评论
1. 要使用C++ 11以上版本。2. 要包含下面的头文件。
原创 2022-10-09 06:24:50
262阅读
类似 vector,智能指针也是模板。因此,当定义智能指针时,必须在尖括号内给出类型,如下所示:shared_ptr<string> p1; // shared_ptr,可以指向string类型的对象shared_ptr<list<int>> p1; // shared_ptr,可以指向int类型的list的对象简单例子 1:#include<iostre
原创 2022-07-18 10:55:34
1111阅读
class A{public:};{}int main(){}
原创 2024-10-23 13:57:45
19阅读
? 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。概述在C++ 11标准中,智能指针作为一种自动资源管理工具被引入,极大地提升了代码的健壮性和安全性。其中,std::shared_ptr作为多所有权智能指针,凭借其独特的引用计数机制和内存自动释放功能,成为现代C++开发中的重要组件。std::shared_ptrC++标准库提供的智能指针类型之一,它通过
原创 精选 2024-05-27 21:56:21
204阅读
前言智能指针是行为类似于指针的类对象,单这种对象还有其他功能。本文介绍三个可帮助管理动态
原创 2023-12-22 20:51:51
89阅读
   首先了解shared_ptr毫无疑问的是智能指针的一种,智能指针是为了解决在大型代码里无法不好控制指针的问题,例如:在类里面如果出现了动态开辟出来的空间,有一个指针指向这块空间,如果在相应的作用范围之内没有将其delete掉会造成内存的泄漏,所以这样就必须手动的对这一块空间进行释放,但是这非常不利于我们的工作,所以我们就引入了智能指针,它是一个类,它的作用范围结束就自动释
原创 2016-04-04 13:36:23
642阅读
1点赞
零、前言 这篇文章本是作为:C++ 智能指针类的第二部分,但无奈那篇篇幅已经不能再长了,于是只好将其单独写成一篇,且把 shared_ptr 的循环引用放在这里写,这样稍微比较连贯一些。 一、shared_ptr 的循环引用 定义:所谓
转载 2013-04-13 23:23:00
137阅读
2评论
C++ 开发中,内存泄漏是个让人头疼的问题。手动管理指针时,稍有不慎就会因忘记释放内存或重复释放导致程序崩溃。而std::shared_ptr的出现,就像给指针装上了自动导航系统,能在多个对象共享同一块内存时,精准把控释放时机,彻底告别内存管理的烦恼。 std::shared_ptr的核心是 “引用计数” 机制。它就像给内存块装了个计数器,每当有新的shared_ptr指向这块内存,计数器就加
原创 1月前
43阅读
[code="c++"]#include #include #include using namespace std;int main(){ shared_ptr p = make_shared("a"); cout
原创 2023-04-11 00:47:43
116阅读
shared_ptr与weak_ptr智能指针均是C++ RAII的一种应用,可用
转载 2019-11-29 10:31:00
169阅读
2评论
shared_ptr<TxDAG> txDag = make_shared<TxDAG>(); txDag是对象指针 TxDAG是类
C++
原创 2021-07-22 10:43:16
216阅读
shared_ptr<TxDAG> txDag = make_shared<TxDAG>();txDag是对象指针TxDAG是类
原创 2022-03-23 11:42:09
211阅读
三、若是定义在class中,则需要在class的构造函数中。一、使用shared_ptr条件。
原创 2022-10-08 09:08:39
643阅读
共享智能指针是指多个智能指针可以同时管理同一块有效的内存,共享智能指针 shared_ptr 是一个模板类 一、shared_ptr 的初始化 (1)通过构造函数 std::shared_ptr<T> 智能指针名字(创建堆内存); #include "stdafx.h" #include <iost ...
转载 2021-08-14 13:01:00
156阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5