【C++11】智能指针
> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:理解在C++11中智能指针,自己能模拟实现 4 种智能指针 > 毒鸡汤:白日莫闲过,青春不再来。 > 专栏选自:C嘎嘎进阶 > 望小伙伴们点赞收藏✨加关注哟 ...

【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
1.内联函数 C语言中我们学习了宏定义,其实我们在学习的过程中认为宏定义是很不错的,但是我们下面要讲解宏的缺点 1.1前言(引出内联函数) ①写一个Add函数的宏定义 #de...

【编程技巧】 C++11智能指针
[TOC] 开篇 C/C++开发过程中,动态内存的管理通过new/delete完成。new在动态内存中为对象分配一块空间并返回一个指向该对象的指针;delete指向一个动态独享的指针,销毁对象,并释放与之关联的内存。 在日常动态内存的使用中,经常会出现以下问题: 申请动态内存后忘记释放,...
【C++11(三)】智能指针详解--RAII思想&循环引用问题
1. 前言 相信学C++的同学或多或少的听说过 智能指针这个词,博主刚听见这个词时 ,觉得它应该很复杂,并且很高大上,但不 管是多牛的东西,都是人写出来的,是可 学习的!不要怀着害怕的心理来学习它 本章重点: 本篇文章着重讲解智能指针的发展历史中出现过的auto_ptr,unique_ptr以及主角shared_ptr.并且会介...

【C++】—— c++11之智能指针
前言: 本期,我们将要学习的是在c++11中新提出的概念——异常指针! (一)智能指针的引入 申请的空间(即 new 出来的空间),在使用结束时,需要 delete 掉,否则会形成内存碎片。在程序 运行期间,new 出来的对象,在析构函数中 ...

深入理解C++11智能指针
深入理解C++11智能指针 C++11引入了智能指针这一新的特性,它能够自动管理内存,有效地解决内存泄漏等问题。本文将深入讲解C++11中三种智能指针的具体实现和用法,帮助读者更好地理解和应用这一特性。 一、C++11智能指针的实现 1. unique_ptr:unique_ptr是一种独占性智能指针,它保证同一时间只有一个指针指向同一个对象。unique_ptr通过裸指...
【C++11】 指针空类型 - nullptr
0. 引言 熟悉C++的童鞋都知道,为了避免“野指针”(即指针在首次使用之前没有进行初始化)的出现,我们声明一个指针后最好马上对其进行初始化操作。如果暂时不明确该指针指向哪个变量,则需要赋予NULL值。除了NULL之外,C++11新标准中又引入了nullptr来声明一个“空指针”,这样,我们就有下面三种方法来获取一个“空指针”: 如下: ...
c++11智能指针的基本使用
前言程序员自己管理堆内存可以提高程序的效率,但是管理比较麻烦,使用普通指针,容易造成堆内存泄漏(忘记释放),二次释放问题。shared_ptr指针shared_ptr机制使用引用计数,每一个shared_ptr的拷贝都指向相同的内存,再最后一个shared_ptr析构的时候,内存才会被释放。shared_ptr实现1.一个指向堆上创建的对象裸指针,raw_ptr2.一个指向内部隐藏的,共享的管理....
C++11:智能指针
背景:内存泄漏,自动释放。栈上创建的智能指针指向堆上创建的对象。共享所有权指针的传播和释放方法:p.get() // 获取原始指针的值 /* 问题:不能保存get()的返回值 -> 空悬指针;也不能delet get()的返回值,delete两次 */ p.reset(...) // 重置指针 /* 无参数 -> p指针置空;有参数 -> p指向...的对象,并释放(de...

c++11新特性——智能指针详解
智能指针:一、解决了什么问题内存泄漏:在未使用智能指针时,我们在堆上malloc申请一段内存或者new一个对象,如果忘记释放就会造成内存泄漏;指针共享所有权的传递和释放,比如:多线程同时使用同一个对象时的析构问题。使用普通指针,容易造成内存泄露(忘记释放)、二次释放、程序发生异常时内存泄露等问题等。二、C++11 智能指针std::auto_ptr : 已被c++11废弃std::unique_....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。