E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
智能指针
C++
智能指针
shared_ptr 和 unique_ptr浅析
文章目录C++
智能指针
shared_ptr和unique_ptr浅析1.入门1.1思路1.2实现2.shared_ptr和unique_ptr2.1基本的规则2.2`shared_ptr`的使用2.3unique_ptr2.4
xdesk
·
2020-09-16 00:19
C++语言编程
c++
C++ shared_ptr的模拟实现
一、shared_ptr的模拟实现我在之前的博客《
智能指针
》中有说过shared_ptr的原理,那么这篇博客,我们模拟实现一个shared_ptr,让大家能更好的理解它的原理。
镜中月ss
·
2020-09-16 00:17
C++
c++
C++——
智能指针
shared_ptr的实现
起初,我最直观的设计想法,直接设计一个类:包含全部要素(对象,指针计数)。然后提供出去。1classCPoint2{3public:4CPoint(intxVal=0,intyVal=0):x(xVal),y(yVal){}5intgetX()const{returnx;}6intgetY()const{returny;}7voidsetX(intxVal){x=xVal;}8voidsetY(i
weixin_30871905
·
2020-09-16 00:55
c/c++
实现一个简单的shared_ptr
一般来说,
智能指针
的实现需要以下步骤:1.一个模板指针T*ptr,指向实际的对象。2.一个引用次数(必须new出来的,不然会多个shared_ptr里面会有不同的引用次数而导致多次delete)。
weixin_30378623
·
2020-09-16 00:56
C++之shared_ptr总结
Share_ptr也是一种
智能指针
。类比于auto_ptr学习。所以推荐先学习auto_ptr,再来学习shared_ptr。本博客的前两个就是auto_ptr的总结。希望感兴趣的朋友可以看看。
jqdy
·
2020-09-15 23:23
C/C++
【C++手撸代码】实现一个shared_ptr
最近面试题有遇到这个题,让你手撸个shared_ptr参考:实现一个简单的shared_ptr
智能指针
原理及实现(1)shared_ptr写的很棒,学习一波。
yh_cheer
·
2020-09-15 23:23
C++
shared_ptr使用
为了解决C++内存泄漏的问题,C++11引入了
智能指针
(SmartPointer)。
六月的雨唯你
·
2020-09-15 23:15
C++
C++
智能指针
shared_ptr 与 weak_ptr 原理
注:源代码摘自GNUC++,除此之外为原创,转载请注明出处。欢迎关注[懒人漫说]公众号,分享Java、Android、C/C++技术,包括基础、自己遇到的问题解决过程。当然如果关注并留言问题的话,我们力所能及的话会帮你解决并回复哟。我们和你一样,是正在成长的程序员,我们也会分享自己的成长路上的感想,希望可以和你一起努力成长。//Copyright(C)2007-2016FreeSoftwareFo
storm_zy
·
2020-09-15 23:12
C++
C++基础 -
智能指针
shared_ptr 的引用计数
智能指针
shared_ptr的引用计数,详见代码及说明//shared_ptr的几种初始化方式shared_ptrp1;//nullshared_ptrp2=make_shared();//非null,
klbc
·
2020-09-15 23:38
C++基础
C++
C++智能指针
c++
指针
C++
智能指针
shared_ptr模板实现原理
C++
智能指针
shared_ptr通过引用计数来管理指向的对象,不需要人工释放这篇博文主要是讲解了
智能指针
的实现原理,怎么实现引用计数#includeusingnamespacestd;namespaceshao_smart_point
2359_God
·
2020-09-15 23:20
C++
share_ptr使用
智能指针
与异常1)管理动态数组2)管理非常规动态对象总结:本文转载自:内存管理之Share_Ptr引子C++中动态内存的管理是通过new和delete来完成的
sinat_39628214
·
2020-09-15 23:56
内存管理
boost::share_ptr
智能指针
使用示例
本文出自“对影成三人”博客,请务必保留此出处http://ticktick.blog.51cto.com/823160/196765最近项目中使用boost库的
智能指针
,感觉
智能指针
还是蛮强大的,在此贴出自己学习过程中编写的测试代码
simtwo
·
2020-09-15 23:19
C++
智能指针
的一个实现(基于模板和Shared_ptr)
自己实现了一个C++的
智能指针
。
sesiria
·
2020-09-15 23:41
C++
智能指针
剖析(shared_ptr实现)
为什么需要
智能指针
防止new的时候忘记进行delete,出现异常时,不会执行delete,造成内存泄露。所以诞生了
智能指针
。防止内存泄漏,毕竟资源即对象。
Tisen.H.S
·
2020-09-15 23:53
C++
源码分析shared_ptr实现
智能指针
是C++中一项很常用的技术,合理的使用
智能指针
可以更方便的管理内存,降低内存泄漏的风险,这里只介绍C++11后官方的
智能指针
。
程序喵大人
·
2020-09-15 23:35
c++
智能指针
shared_ptr的实现
关于为什么要用
智能指针
,不需要做太多的赘述了。主要还是为了帮助管理申请的堆空间,程序员很有可能会忘了自己的申请空间。
MostHandsomeWang
·
2020-09-15 23:46
c/c++
auto_ptr、shared_ptr、weak_ptr、scoped_ptr用法小结
auto_ptrauto_ptr是现在标准库里面一个轻量级的
智能指针
的实现,存在于头文件memory中,之所以说它是轻量级,是因为它只有一个成员变量(拥有对象的指针),相关的调用开销也非常小。
lollipop_jin
·
2020-09-15 23:28
c++
技术类
C++
智能指针
shared_ptr的实现
转自:http://www.cnblogs.com/xuelisheng/p/9739812.html#include#includeusingnamespacestd;templateclasssmart{private:T*_ptr;int*_count;//referencecoutingpublic://构造函数smart(T*ptr=nullptr):_ptr(ptr){if(_ptr)
hp_cpp
·
2020-09-15 23:28
C++
shared_ptr简单应用
一个好的建议是:坚持只使用
智能指针
,就可以避免忘记delete造成的内存泄露,避免同一块内存被释放两次的问题。对于一块内存,只有在没有任何
智能指针
指向它的情况下才会自动释放它。shared_p
祁连山牧羊人
·
2020-09-15 22:49
C++
primer
11学习
shared_ptr的相关使用
shared_ptr简介shared_ptr是一个**标准的共享所有权的
智能指针
。**它允许多个指针指向同一个对象,定义在memory文件内,命名空间为std。
WhiteJunior
·
2020-09-15 22:46
Interview
Preparation
C/C++
Self-Culture
Piecemeal
Knowledge
C++
智能指针
shared_ptr的实现
shared_ptr的实现
智能指针
对象中引用计数是多个
智能指针
对象共享的,两个线程中
智能指针
的引用计数同时++或–,这个操作不是原子的,引用计数原来是1,++了两次,可能只实际只有一个加生效了,引用计数是
loreal8
·
2020-09-15 22:41
C++
c++11
智能指针
(二):shared_ptr和自定义的Deleter
本节讨论怎样使用std::shared_ptr自定义Deleter.当一个shared_ptr对象超出作用域时,其析构函数被调用,在析构函数中,将其引用计数减1,如果引用计数的值变为0,则删除关联的原始指针。要删除析构函数中的内部原始指针,默认情况下,shared_ptr调用delete()函数,即deletePointer;但是,我们在析构函数中并不总是要使用delete函数,还可能有其他的需求
小麒麟666
·
2020-09-15 22:01
c/c++
C++11智能指针
[C++11]_[初级]_[shared_ptr的使用场景]
场景C++11之前,使用auto_ptr只能适用于new出来的对象,为此我还专门创建了一些工具类来释放对象.使用
智能指针
的方式释放malloc出来的堆空间,C++11出现后可以使用shared_ptr来管理
infoworld
·
2020-09-15 22:58
C++语言特性和标准库
智能指针
原理分析与自己的shared_ptr实现
原理分析内存管理历来是C++编程的一项需要小心费力气的活,因为C++本身不带GC机制,所有的内存管理都需要我们手动实现,从malloc/free到new/delete,再到allocator的出现,无非都是为了更合理简单的避免内存泄露。指针本身是一个用法十分灵活并且功能强大的工具,然而它对内存的直接掌控也使得它不得不常常背起内存泄露的黑锅,因为忘记删除指针或者将一个指针删除两次的错误往往十分隐蔽,
ye_create
·
2020-09-15 22:54
C++
实践
C++
智能指针
: shared_ptr 实现详解
文章目录shared_ptr描述声明作用原理实现函数使用关于shared_ptr循环引用问题shared_ptr描述声明shared_ptr属于C++11特性中新加的一种
智能指针
,它的实现方式是模版类,
v-code
·
2020-09-15 22:57
#
编程语言:C++
编程语言
动态内存与
智能指针
程序中内存分配有以下五种:栈区存放局部变量、函数参数等,由编译器自动分配,变量离开作用域后自动收回内存,可分配的内存空间较小。voidfunc(int_a);intmain(){inta=5;//局部变量a存放在栈区func(a);//参数值存放在栈区}堆区由程序员手动分配与回收,分配内存后生存期直到手动收回内存或程序终止,程序终止后由OS收回内存。可分配的内存空间大。int*p=newint(5
River_Lethe
·
2020-09-15 22:56
C++
Primer
读书笔记
C++Primer :第十二章:shared_ptr和new的结合使用
shared_ptr和new的结合使用如果我们不初始化一个
智能指针
,它就会被初始化为一个空指针,我们可以用new返回的指针来初始化
智能指针
接受指针参数的
智能指针
构造函数是explicit的。
不会code的菜鸟
·
2020-09-15 21:49
C++学习笔记
C++基础 -
智能指针
shared_ptr 和 new 结合使用
//shared_ptr和内置指针结合使用,慎重voidprocess(shared_ptrptr){coutp1=newint(1024);//错误,explicit构造函数,不能进行隐式转换shared_ptrp2(newint(1024));//通过指针初始化shared_ptrprocess(p2);intvalue=*p2;//有效p2.reset(newint(100));//p2释放
klbc
·
2020-09-15 21:56
C++智能指针
C++
C++基础
c++
指针
浅谈shared_ptr及shared_ptr涉及到的循环引用问题
起初在C++标准库里面是没有
智能指针
的,直到C++11才加入了shared_ptr和unique_ptr以及weak_ptr。
小葱1024
·
2020-09-15 21:01
c++语言
计数
智能指针
要点(shared_ptr)
智能指针
大大减少了犯错的机会,简化代码,提高可维护性。
cd2108006026
·
2020-09-15 21:40
boost-asio
为什么使用std::make_shared
本文首发于公众号CPP编程目录为什么使用std::make_shared减少重复代码效率更高异常安全为什么使用std::make_sharedstd::shared_ptr是常用的
智能指针
,建立一个shared_ptr
SuWanWorld
·
2020-09-15 16:42
C++进阶
c++
C++11使用make_shared的优势和劣势
C++11中引入了
智能指针
,同时还有一个模板函数std::make_shared可以返回一个指定类型的std::shared_ptr,那与std::shared_ptr的构造函数相比它能给我们带来什么好处呢
yagerfgcs
·
2020-09-15 15:40
#
01-C&C++
开源一个C++自动垃圾回收器
blinkgc能让C++拥有java一样的垃圾回收机制,只要按照规范,让你的类继承blinkgc规定的基类,并且写上trace函数,就能拥有自动垃圾回收能力,并且无需担心
智能指针
那种循环引用引起的无法回收
龙泉寺扫地僧
·
2020-09-15 15:25
智能指针
总结
在这种背景下,
智能指针
应运而生。
智能指针
的最终的目的是将一块内存交给一个托管对象,内存何时释放由托管对象来决定,而对对象的访问也使用托管对象来实现。
moonfiend
·
2020-09-15 14:15
通用编程技术
开源一个C++自动垃圾回收器
blinkgc能让C++拥有java一样的垃圾回收机制,只要按照规范,让你的类继承blinkgc规定的基类,并且写上trace函数,就能拥有自动垃圾回收能力,并且无需担心
智能指针
那种循环引用引起的无法回收
量子物理学
·
2020-09-15 13:54
#
C++
对于拷贝构造函数和赋值构造函数的理解
昨天晚上在看
智能指针
的时候,我发现自己连一个拷贝构造函数和赋值构造函数都写不出来,自己就尝试写了一个版本,结果发现错误百出,对于拷贝构造函数和赋值构造函数的理解仅仅停留在理论的方面,而不知其中太多的内涵
weixin_30780221
·
2020-09-15 08:15
Centos7安装的eclipse,如何支持C++11新特性,例如shared_ptr
智能指针
等。
在Centos7系统的终端环境下,当编写C++程序用到C++11新特性时,可以再编译的时候添加-std=c++11。在eclipseIDE中,我们该如何使用C++11新特性?这里我用自己创建的Test项目为例做简要说明。鼠标移动到Test项目上,单机鼠标右键,滑动到最下面有一个Properties,点击该选项。Properties->C/C++Build->Settings->GCCG++Comp
你养我吧
·
2020-09-15 08:02
循环引用-
智能指针
的死穴之一
智能指针
的实现思路也体现了C++基于对象的原则,对象应该为自己管理的资源负责,包括资源的分配与释放,而且最好将资源的释放与分配搞的自动化一点,典型的实现方法就是在构造函数里分配资源,在析构函数里释放资源
李朝淋
·
2020-09-15 08:55
内存管理
c++11&14-
智能指针
专题
但像java等其他一些语言则不会有这样的问题,为什么呢,因为它们有很好的处理内存的方法,比如java的垃圾回收机制,现在,我们c++终于也有了
智能指针
。
a flying bird
·
2020-09-15 02:11
#
C/C++
C++
智能指针
#pragmaonce#includeusingnamespacestd;templateclassSmartPointer{public:SmartPointer():mPointer(NULL){}SmartPointer(T*p):mPointer(p){if(mPointer)mPointer->incRefCount();}~SmartPointer(){if(mPointer&&mPo
ziggyPLAYguitar
·
2020-09-15 01:44
C++11
指针辨析:悬垂指针、哑指针、野指针、
智能指针
悬垂指针:1:提出的原因:请看下面的代码片段:int*p=NULL;voidmain(){inti=10;p=&i;cout#include#include#includeusingnamespacestd;intmain(void){char*p=(char*)malloc(100);strcpy(p,"hello");deletep;//p所指的内存被释放,但是p所指的地址仍然不变,原来的内存
zhaojj1988
·
2020-09-14 08:34
C++
数据结构
C++
智能指针
智能指针
(SmartPointer),是一个来用存储指向动态分配(堆)对象指针的类。简单的说,它本身是一个类,这个类是用来存储对象指针。
阳光岛主
·
2020-09-14 07:11
C/C++/C#
集合篇11:leetcode-特殊篇1
目录1.LRU内存缓冲的实现2.LFU缓存结构设计3.C++实现字节对齐4.C++
智能指针
的实现5.itoa()函数和atoi()函数的底层实现6.手写string类7.饿汉和懒汉单例模式1.LRU内存缓冲的实现题目看来半天没有理解题意
107的成长之路
·
2020-09-14 07:38
编程集合篇
智能指针
的使用:smart_ptr
在现代C++中,绝对不要再使用“裸指针(nakedpointer)”了,不要用const可以修饰指针,而是应该使用“
智能指针
(smartpointer)”。
LYR1994
·
2020-09-14 06:46
c++
c++
编程语言
指针
为什么auto_ptr
智能指针
不能作为STL标准容器的元素
上个星期的博客shared_ptr源码剖析里其实遗漏了一个问题:为什么auto_ptr不可以作为STL标准容器的元素,而shared_ptr可以?我在网上看了好多篇讲shared_ptr的文章里讲到了这个问题,不过大多文章只是简单两笔带过。我研究了一下这个问题,发现还是有挺多有价值的内容,所以把这个问题单独成一篇博客和大家分享。先从表象上看看这个问题,假如有这样的一段代码,是否能够运行?intco
一缕阳光a
·
2020-09-14 05:18
C++
STL
C++ 类的静态成员变量指针如何释放
目前有两种方法:
智能指针
使用静态变量维护一个引用计数,每创建一个对象,引用计数加1,析构函数中,引用计数减一,直到为0才释放内存//方法一:使用
智能指针
//使用
智能指针
在程序结束时(main大括号之外)
清风徐来
·
2020-09-14 04:14
C++
POCO C++库学习和分析 -- 内存管理 (一)
POCOC++库学习和分析--内存管理(一)对于内存的管理,PocoC++库中主要包含了引用计数,
智能指针
,内存池等几个部分。下面将分别对这几个部分进行介绍。
weixin_30667649
·
2020-09-14 02:03
POCO C++库学习和分析 -- 数据类型转换
前面的内容包括了:1.SharedLibrary模块(插件技术)《Foundation库SharedLibrary模块分析》2.线程(锁,线程,线程池,定时器,任务,主动对象)《线程》3.内存管理(
智能指针
weixin_30498921
·
2020-09-14 02:30
Poco SharedPtr
智能指针
处理数组方式
原文链接PocoSharedPtr
智能指针
处理数组过程中,遇到些问题,参考官方文档调试,总是报错,查看源码之后,终于发现了问题,发现很多问题,在有源码的情况下,通过源码都可以自行解决,可能官方文档很久没有更新的缘故
苍原狮啸
·
2020-09-14 02:04
C++
分享文章
POCO C++库学习和分析 -- 内存管理 (三)
POCOC++库学习和分析--内存管理(三)看完Poco库中的
智能指针
,基本上Poco中的内存管理已经快结束了。其他的部分都是些边边角角的东西,非常的简单。下面一一介绍。
weixin_30339969
·
2020-09-14 01:37
上一页
27
28
29
30
31
32
33
34
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他