- 1
- 0
- 约5.18千字
- 约 5页
- 2016-11-28 发布于河南
- 举报
芭贝乐骗子之芭贝乐c工程师推荐C智能指针
C++智能指针
1. 为什么需要智能指针?
简单的说,智能指针是为了实现类似于Java中的垃圾回收机制。Java的垃圾回收机制使程序员从繁杂的内存管理任务中彻底的解脱出来,在申请使用一块内存区域之后,无需去关注应该何时何地释放内存,Java将会自动帮助回收。但是出于效率和其他原因(可能C++设计者不屑于这种傻瓜氏的编程方式),C++本身并没有这样的功能,其繁杂且易出错的内存管理也一直为广大程序员所诟病。
更进一步地说,智能指针的出现是为了满足管理类中指针成员的需要。包含指针成员的类需要特别注意复制控制和赋值操作,原因是复制指针时只复制指针中的地址,而不会复制指针指向的对象。当类的实例在析构的时候,可能会导致垂悬指针问题。
管理类中指针成员的方法一般有两种方式:一种是采用值型类,这种类是给指针成员提供值语义(value semantics),当复制该值型对象时,会得到一个不同的新副本。这种方式典型的应用是string类。另外一种方式就是智能指针,实现这种方式的指针所指向的对象是共享的。
2. 智能指针的实现概述
智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。
每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而
您可能关注的文档
最近下载
- 2026年抽样检验试题及答案.docx VIP
- 人事处廉政风险防控排查表.doc-安徽医学高等专科学校.doc VIP
- 2025年互联网广告投放算法效果评估与智能广告投放平台优化报告.docx
- 做传统美德的践行者.pptx
- 公路沥青路面施工技术规范.doc VIP
- 3.4 情绪情感与社会性发展活动的实施(课件)《幼儿早期学习支持》(高教版)同步精品课堂.pptx VIP
- 2026 年化工企业火炬系统设计规范(SH_T 3009-2025,附火炬高度计算).docx VIP
- 日常防火检查巡查制度.docx VIP
- 年产30万吨饲料加工厂可研报告.pdf VIP
- 3.2 语言发展活动的实施(课件)《幼儿早期学习支持》(高教版)同步精品课堂.pptx VIP
原创力文档

文档评论(0)