2004-01-30

Symbian OS开发日记(Essential Idioms-Layout conventions)

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。


Standard class hierarchy―C classes and class CBase

请不要吝惜您的评论,每一条评论,都是我在漫漫长夜前行的力量

0 条评论:

发表评论

<< 主页