Symbian开发入门
2010-06-03 23:07:00 来源:WEB开发网总结:不可修改的描述符类TDesC是所有的非字面量描述符的基类,它提供了确定描述符长度和访问数据的方法,另外,它实现了所有的您想用来处理常量字符串的操作。
3.2可修改(modifiable)的描述符
所有的可修改的描述符都从TDes基类派生,而TDes本身又是从TDesC派生的。TDes有一个额外的成员变量用来存放为该描述符分配数据的最大长度。 MaxLength()方法返回了这个最大的长度。像TDesC中的Length()方法一样,MaxLength()方法也不被TDes的子类继承。 TDes 类提供了一系列的方法, 用来对可修改字符串数据的操作,包括对字符串的附加、填充和格式化操作。所有的这些方法都被派生类继承,派生类只实现一些特定的构造方法和复制赋值的方法。这些方法都不负责分配内存,假如它们超过了描述符的数据长度,例如,用Append()方法在某个字符串后面附加另一个字符串时,在调用该方法之前,您必须确保有足够的内存空间。当然,只要不超过描述符的最大存储容量,描述符的长度可以自由地伸缩。当描述符长度比最大长度短的时候,描述符的后面部分是多余未用的。这些方法使用了断言(assertion)来确保描述符的最大长度不会被超出。如果发生内存溢出,将会产生一个 panic(关于panic,我们将在后面的章节介绍),这样可以方便您检查和修正程序的错误。
事实上,不可能使描述符溢出,这一点保证了您代码的强壮性,而且不易产生难以跟踪的内存陷阱。
但需要注意的是,由于基类的构造方法是proteced类型的,所以您无法直接实例化一个TDesC或TDes类的实例。现在我们来看看描述符的派生类,您可以实例化和使用派生类的对象。正如前面所说,这个地方是比较让人迷惑的,因为描述符存在大量的派生类。 前面,我们已经解释过为什么每个类会有三个不同的版本,例如:TDes8, TDes16 和 TDes,分别对应窄字符,宽字符和中立的类。现在,让我们看看有哪些主要的描述符类型,在深入讨论每种类型的细节之前,我们先考察一下它们在一般情况下的内存布局。描述符有两种基本的内存布局:指针描述符和缓存区描述符。不同之处在于,指针描述符持有一个指向字符串的指针,而这个字符串存储在内存中的基它位置。与指针描述符不同,缓存区描述符本身持有字符数据,也就是说字符数据本身构成了描述符的一部分。
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››Symbian S60 SocketConnection参数
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››Symbian乏力:2010年诺基亚悲情大事记
- ››Symbian三大升级开启2011年新战略
- ››Symbian/Android/iOS/WM安装包对比
- ››Symbian一个活动对象的测试例子
- ››Symbian ListBox控件
- ››Symbian下自动切换SDK的批处理代码
更多精彩
赞助商链接