Symbian入门系列四(描述符)

作者:liujiwei   发帖日期:2006-12-6 21:39:12
描述符就是ASCI C++里面的字符

CDesC是所有描述符的基类.
CDesC以C结尾,表明是常量.
提供了一些对象不可修改的方法.
CDesC提供了一些如lengh和Ptr的方法.
与你想象的不同,这些不是虚函数.
而是硬性编码来实现的.
所有的描述符的前四个字节都是相同的.
用来描述描述符的类型.
后二十八个字节是用来表示长度.

CDes是从CDesC派生而来.
在CDesC基础之上,增加了很多修改的方法.
它增加了maxlengh,占据4个字节.
你可以对CDes的对象进行各种修改操作.
但是不能超过maxlengh,否则的话会产生一个严重的panic.
CDes不提供ReAlloc这样的方法.
因为这样描述符就要自己管理内存.
这样的设计违背了描述符高效和简单的初衷.

以上这两个基类包含了所有描述符操作的方法.
它们的子类负责构造和销毁.
例如构造函数,拷贝构造函数,=运算符重载.

具体用于实现的,在Symbian里面有三种描述符.

第一种是指针描述符(TPtr,TPtrC)
它的对象在stack构造.
它存储的是指针,该指针指向字符串.
它不关心字符串的存储位置.
TPtrC有个Set方法,你可以改变指针所指的位置.
如果你不想更改,你可以在前面加上 const.

第二种是缓冲描述符(TBuf,TBufC)
它的对象是在stack上构造的.
它存储的是字符串.
它适合在栈构造比较小的固定长度的对象.

第三种是堆描述符(HBuf,HBufC)
它是在heap上构建的.
如果描述符比它的对象的生存周期还长,
如果你不知道描述符的大小,
那就用堆描述符.
HBufC可以重新分配. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值