Class types
Overview
Symbian平台的应用程序使用4种主要类型的类,下面是它们:
- 数值类,或者数值类型,名字以T开头。它们不包含任何外部对象,不管直接(指针)或者间接(句柄)。
- 堆分配类,名字以C开头。这样的类都是继承自CBase类。
- 资源类,名字以R开头。资源对象控制真实的资源。
- 接口类,名字以M开头。它们定义抽象的接口,有派生类来实现功能。
这些类型都和垃圾清理支持紧密相关。
Value types―T classes
数值类型是最基础的类型。它们是用T开头的类型或者类。
- T类型有自己的值。它们不包含任何外部对象,不管直接(指针)或者间接(句柄)。
- T类型可以分配空间在堆栈(C++自动变量)或者作为其他类的成员。
这些基础特征的后果,将在下面探索。
Constructor
许多T类型简单到不需要构造器。它们仍旧需要构造起来初始化成员数据。
Copy constructor and assignment operator
复制构造器(TX(const TX&))或者赋值运算符(TX& operator=(const TX&))是很少需要的。这个因为复制总是简单的,几乎总是简单的把源对象的成员复制到目的对象而已。这是编译器生成复制构造器和赋值运算符的时候的缺省行为。
当T类是一个模板类,而参数是一个整数长度而类也有成员的情况下,这些功能还是有用的。那么,复制或者赋值TX<32>到TX<40>的时候,就需要比简单的位复制更老练的机制,所以需要给复制构造器和赋值运算符进行编码。
Destructor
T类型没有C++析构器。因为没有必要,T类型没有任何外部资源需要释放。
Orphaning
T类型可以安全的在堆栈上面孤立。孤立的意思就是在不掉用析构器的情况下释放内存。因为T类型没有外部资源,所以当T类型孤立的时候,没有外部资源会变得无法访问。
Function arguments
T类型可以在作为传值和传址参数的情况下作为函数的参数。
Data members
T类型可以包含其他T类型。另外它们还可以包含R对象,或者是C对象的指针,作为对象的宿主,有义务维护对象的清除过程。在实际中,这种情况很少发生。
Built-in C++ types
所有的C++内建类型都符合T类的标准。内建类型都用typedef定义了以T开头的名字,例如TInt。


请不要吝惜您的评论,每一条评论,都是我在漫漫长夜前行的力量
0 条评论:
发表评论
<< 主页