智能指针的其他几个问题(2/2)

原创 2007年09月18日 12:12:00

4.次序比较

如果熟悉stl,你已经知道,对于所有比较而言,定义一个less操作符就够了。其他所有操作都可以通过less获得。

对于smartpointer而言,你可以不支持次序比较操作(定义而不实现),也可以通过定义operator<支持排序比较。但是,可能你需要定义指针的operator<和T对象的operator<,一般情况,这两个不可少。 

另外,指针有两个概念,iterator和moniker,iterator关心遍历,moniker关心替代对象本身。举个例子来说,vector关心二者,list关心前者。

5.检测及错误报告

如何报告,使用异常是个不错的选择,assert也是个选择,但终有一个报告办法。另外,对于lazy初始化的情况,你还可以在检测到特定情况的时候做特定处理。

如果拒绝空smartpointer,你可以在构造函数里检测(初始化检测)。如果检测monitor,那你要在使用的时候(operator->和unary operator*)进行对象的合法性检测(dereference前检测)。但是注意,后者这种检测可能成为性能瓶颈。

6.对轻量级vector的支持

vector设计的太完善了,肯定,这也要牺牲一定的效率,有的时候,我们只想得到一个可以动态扩张的数组,不需要其他任何保证。smartpointer可以提供帮助。

7.smartpointer和多线程

同样,这里你要遇到对象加锁和指针本身。

加锁对象比较简单,你在对象里定义锁操作,在smartpointer构造、析构函数里做正确的事情就可以了。

加锁指针对象本身要考虑不同指针策略,引用计数和引用链表有不少的区别,但是你总可以。

在这里,侵入式方案又一次展示了它的优势。

NS2安装时应注意的几个问题

  • 2013年03月27日 20:55
  • 93KB
  • 下载

cocos2dx-内存管理剖析(智能指针的局限与引用计数的选择)

一、常用内存管理计数 1、智能指针 cocos的内存管理没有用智能指针,智能指针,c++有相应的类型,代码如下: #include using namespace std; class Obj{...

Boost学习系列2-智能指针(上)

一、概述最先讲的就是指针,这是C语言中,不少程序员害怕的东西,害怕的原因大多是因为不了解其初始化、调用、赋值和清除的方式,而智能指针则可以去除这个顾虑,在初始化时就已经预定了删除,排解了后顾之忧。19...
  • JuanA1
  • JuanA1
  • 2011年07月21日 21:27
  • 4087

第16章part2-智能指针

C++

异常处理与MiniDump详解(2) 智能指针与C++异常

异常处理与MiniDump详解(2)  智能指针与C++异常write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie讨论新闻组及文件一、   综述《异常处理与...

【深入了解cocos2d-x 3.x】内置数据结构(1)——智能指针

智能指针在C++11的标准中已经存在了,分别是unique_ptr,shared_ptr,weak_ptr,其中最常用的应该是share_ptr,它采用引用计数的方式管理内存,当引用计数为0的时候,自...

ReactNative4Android源码分析2: JNI智能指针之实现篇

上一篇介绍了JNI智能指针与wrapper class的作用,下面将对它们的具体实现进行分析,并解答上篇提出的几个问题。       前文回顾了java object在JNI中的引用对象jobject...
  • eewolf
  • eewolf
  • 2016年11月23日 16:57
  • 791

智能指针剖析(2)

在上一篇博客里的智能指针的剖析中,我们是采用移交管理权的方式,并且把给出管理权的一方的指针空。 在对智能指针的再次剖析中我们仍然采用移交管理权的方式,但是在这种方式下我们并没有把管理权的一方的指针...

cocos2dx 数据内存管理----RefPtr智能指针

对于所有的UI元素,用autorelease来管理,而对于游戏中的数据,每帧释放一次不适用,所以添加了RefPtr智能指针(模版类)来管理游戏中的数据类(需动态申请内存的数据) 简介...

智能指针(smart pointer)(2):unique_ptr

Unique pointer:   Manages the storage of a pointer, providing a limited garbage-collection facility...
  • kzq_qmi
  • kzq_qmi
  • 2015年06月18日 18:53
  • 638
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:智能指针的其他几个问题(2/2)
举报原因:
原因补充:

(最多只允许输入30个字)