Symbian OS 类命名规则之 基本类型和T类
2010-03-22 16:27:00 来源:WEB开发网Symbian OS类命名规则
* Symbian OS定义了几种不同类型的类,每一种都有不同的特性,这种分类是为了描述类对象的主要属性和行为,比如哪些类对象可以建立在堆上,哪些可以建立在栈上;还有,它们怎么被释放。每一种类型的类都有一个好的定义规则,它使的对象的创建和释放变得很容易。
* 为了使分类容易被区分,Symbian OS使用了一个简单的命名规则:类名使用一个字母作为前缀(通常是T,C,R,M)。命名规则并不总是受欢迎,但是这个规则却很容易使用,并且很有价值,因为通过它可以很容易弄清类的行为,尤其是如何释放它们。作为一个设计者,类的分类是问题简单化,你需要考虑类需要的行为,并把它们归为某类型。通过前缀标记,可以指导你该如何创建类对象,如何使用它们和如何安全释放它们。
1.1 基本类型
在这里我将讨论一下每一种类的基本特性。在讨论之前,让我们回顾一下基本数据类型,Symbian OS 提供了一个内置类型的集合(使用typedef定义),这将使它们独立于编译器,我们提倡尽量使用这些类型。
TIntX和 TUintX(X=8,16,32): 8位,16位,32为整型和无符号整型;除非是进行最优化或兼容性,我们应该使用TInt或UTint,它们相当于32位整型。
TInt64: 在Symbian OS v8.0前的版本不支持64位算法,所以TInt64通过两个32位整型来实现。在v8.0,TInt64和UTint64被定义成(typedef)长长整型,并得到了64位支持。
TReal32和TReal64(TReal == TReal64):单精度和双精度浮点型,跟float和double等同。对它们的操作要慢于整型,所以要避免在没有必要的情况下使用它们。
TTextX(X=8,16): 窄字符(ANSI)和宽字符(Unicode),对应于8位和16位无符号整型。
TAny* : 等同于void*,我们可以在绝大多数情况下用TAny来替换void,除非根据上下文,void表示"nothing",比如void*参数,我们应该使用TAny*,而返回void的函数没有替换必要:void TypicalFunc(TAny* aPointerParameter);
TBool : 因为历史原因,TBool等同于int。ETrue为1,EFalse为0,因为在C++中把非零整型均视为true,所以应该避免直接使用ETrue进行比较。每一个TBool占32位,当使用很多TBool时,对内存是一种浪费,你可能希望使用1位来标识一个bool值。
1.2 TClasses
T类的行为跟C++内置类型很相似,因此他们使用typedef的第一个字符作为前缀,'T'就是Type的意思。跟内置类型相似,它们没有构造函数和析构函数,因此,T类不应该包含任何其他需要构造函数的成员。另外,T类可以包含下列成员:其他T类对象;"used
更多精彩
赞助商链接