zl程序教程

C++ 智能指针二

  • C++ Boost 内存池与智能指针

    C++ Boost 内存池与智能指针

    Pool内存池: 只能开辟常规内存,数据类型为int,float,double,string等。#include <iostream> #include <boost/pool/pool.hpp> #include <boost/pool/object_pool.hpp> using namespace std; using namespace boost;

    日期 2023-06-12 10:48:40     
  • 【C++ 语言】智能指针 引入 ( 内存泄漏 | 智能指针简介 | 简单示例 )

    【C++ 语言】智能指针 引入 ( 内存泄漏 | 智能指针简介 | 简单示例 )

    文章目录I . 智能指针 引入II . 智能指针 简介III . 智能指针 简单示例I . 智能指针 引入1 . 示例前提 : 定义一个 Student 类 , 之后将该类对象作为智能指针指向的对象 ;class Student { public: //构造函数 Student() { cout << "Student 对象创建" << en

    日期 2023-06-12 10:48:40     
  • C++智能指针

    C++智能指针

    目录1.为什么需要智能指针2.内存泄漏问题3.智能指针的使用以及原理1.为什么需要智能指针?下面结合抛异常的情况来看一个程序,看看这个程序中有没有内存方面的问题:#include<iostream> #include<memory> using namespace std; int div() { int a, b; cin >> a >> b

    日期 2023-06-12 10:48:40     
  • C++11 unique_ptr智能指针详解

    C++11 unique_ptr智能指针详解

    C++ 标准提供了 3 种智能指针,分别是 shared_ptr、unique_ptr 和 weak_ptr,本节我们给大家讲解 unique_ptr 智能指针的特性和用法。 关于 shared_ptr 智能指针,可以阅读《C++11 shared_ptr智能指针》一节;关于 weak_ptr 智能指针,可以阅读《C++11 weak_ptr智能指针》一节。 作为智能指针的一种,unique_

    日期 2023-06-12 10:48:40     
  • C++智能指针unique_ptr详解

    C++智能指针unique_ptr详解

    在一个大型程序中,指向动态分配内存的指针可能会在程序的各个部分使用。在这种情况下,确定哪些内存不再需要,或者程序的哪个部分应该负责删除指针就变得比较困难。 程序可能会因此出现悬挂指针,也就是说,指针已经被删除了,但其内存仍然在使用中;还可能出现内存泄漏,也就是说,即使已经不再需要内存了,但指针仍然未被删除。另外还有双重删除的问题,当程序的某 部分要删除一个已经被删除的指针时,即可出现这种情况。如

    日期 2023-06-12 10:48:40     
  • C++ share_ptr智能指针使用详解

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

    share_ptr 智能指针,也被称为共享指针,用于管理可以由多个智能指针共同拥有的动态分配对象。特别是,类型 shared_ptr T 用于管理 T 类型对象的所有权。 类构造函数 shared_ptr T (T * ptr) 可用于创建共享指针,管理由裸指针 ptr 给定地址的对象。shared_ptr 类可以重载指针运算符 * 和 - 。以下示例创建了一个由共享指针管理的动态分配整数,然后

    日期 2023-06-12 10:48:40     
  • C++中智能指针如何设计和使用

    C++中智能指针如何设计和使用

        智能指针(smartpointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(referencecount)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造

    日期 2023-06-12 10:48:40     
  • C++智能指针深入解析

    C++智能指针深入解析

    1.为什么需要智能指针?简单的说,智能指针是为了实现类似于Java中的垃圾回收机制。Java的垃圾回收机制使程序员从繁杂的内存管理任务中彻底的解脱出来,在申请使用一块内存区域之后,无需去关注应该何时何地释放内存,Java将会自动帮助回收。但是出于效率和其他原因(可能C++设计者不屑于这种傻瓜氏的编程方式),C++本身并没有这样的功能,其繁杂且易出错的内存管理也一直为广大程序员所诟病。更进一步地说

    日期 2023-06-12 10:48:40     
  • C++ 智能指针详解

    C++ 智能指针详解

    原文链接:  https://blog.csdn.net/flowing_wind/article/details/81301001 参考资料:《C++ Primer中文版 第五版》   我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。 程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时

    日期 2023-06-12 10:48:40     
  • C++中智能指针的设计和使用

    C++中智能指针的设计和使用

    智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,可以确保自己主动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时。初始化指针并将引用计数置为1;当对象作为还有一对象的副本而创建时。拷

    日期 2023-06-12 10:48:40     
  • C++11之thread智能指针(一百零八)

    C++11之thread智能指针(一百零八)

    1.代码示例   //1.class_demo.h #include <iostream> #include <thread> #include <chrono> #include <unistd.h> using namespace std; class Audio{ public: bool loo

    日期 2023-06-12 10:48:40     
  • C++之普通指针与智能指针相互转换(一百零六)

    C++之普通指针与智能指针相互转换(一百零六)

    1.代码示例   #include <iostream> #include <memory> #include <boost/smart_ptr.hpp> #include <boost/make_shared.hpp> class Student{ public: Student(int d) :

    日期 2023-06-12 10:48:40     
  • C++11中shared_ptr智能指针用法(二十二)

    C++11中shared_ptr智能指针用法(二十二)

    1.代码示例   #include <memory> #include <iostream> using namespace std; class Test{//外部类及函数不可访问成员变量等 //struct Test{//外部类及函数可访问成员变量等,如:main.cpp可访问成员变量 publi

    日期 2023-06-12 10:48:40     
  • 【c++复习笔记】——智能指针详细解析(智能指针的使用,原理分析)

    【c++复习笔记】——智能指针详细解析(智能指针的使用,原理分析)

    原文:https://blog.csdn.net/sjp11/article/details/123899141 目录 一. 智能指针的基本概念 二. 智能指针的定义和使用 三. auto_ptr 四. unique_ptr 五. share_ptr 1. shared_ptr的基本概念 2. shared_ptr的原理 3. shared_ptrd的实现 4. shared_ptr的循环引用

    日期 2023-06-12 10:48:40     
  • C++11 unique_ptr智能指针详解

    C++11 unique_ptr智能指针详解

    在《C++11 shared_ptr智能指针》的基础上,本节继续讲解 C++11 标准提供的另一种智能指针,即 unique_ptr 智能指针。 作为智能指针的一种,unique_ptr 指针自然也具备“在适当时机自动释放堆内存空间”的能力。和 shared_ptr 指针最大的不同之处在于,unique_ptr 指针指向的堆内存无法同其它 unique_ptr 共享,也就是说,每个 uniq

    日期 2023-06-12 10:48:40     
  • C++智能指针weak_ptr

    C++智能指针weak_ptr

    C++智能指针weak_ptr 学习路线:C++智能指针shared_ptr->C++智能指针unique_ptr->C++智能指针

    日期 2023-06-12 10:48:40     
  • C++编程经验(9):智能指针 -- 裸指针管得了的我要管,裸指针管不了的我更要管!

    C++编程经验(9):智能指针 -- 裸指针管得了的我要管,裸指针管不了的我更要管!

    文章目录 智能指针介绍手写智能指针不带引用计数的智能指针 升级手写的智能指针智能指针的循环引用问题强智能指针弱智能指针弱智能指针升级为强智能指针 多线程访问共享对象 智能指针

    日期 2023-06-12 10:48:40     
  • C++11 新特性之智能指针(shared_ptr, unique_ptr, weak_ptr)

    C++11 新特性之智能指针(shared_ptr, unique_ptr, weak_ptr)

     这是C++11新特性介绍的第五部分,涉及到智能指针的相关内容(shared_ptr, unique_ptr, weak_ptr)。 shared_ptr shared_ptr 基本用法        shared_ptr采用引用计数的方式管理所指向的对象。当有一个新的shared_ptr指向同一个对象时(复制shared_ptr等),引用计数加

    日期 2023-06-12 10:48:40