WEB开发网
开发学院手机开发Symbian 开发 Symbian开发入门 阅读

Symbian开发入门

 2010-06-03 23:07:00 来源:WEB开发网   
核心提示:}在symbian系统中存在几种不同类型的类(class),不同类型的类,Symbian开发入门(2),其特性也各不相同,有的在堆(heap)上创建,在发生异常的时候,清除栈(cleanupStack)会释放这个对象,有的在栈(stack)上创建,特别的是

}

在symbian系统中存在几种不同类型的类(class),不同类型的类,其特性也各不相同。

有的在堆(heap)上创建,有的在栈(stack)上创建,特别的是,类的实例(instance)的清除方式也不尽相同(下面,为了方便我们把类的类别称为型别)。型别(class type)可以体现这些不同的特点。每个型别都有一套定义好的关于如何创建和清除实例的规则。为了容易区分型别,Symbian系统使用了一个简单的命名规则:类名以大写字母开头(T,C,R 或M)。作为类的设计者,你先要考虑这个类的行为,看它到底与哪种型别匹配,一旦确定了它的类型,然后你就可以专注于该类的功能。同样,对一个类的使用者来讲,如果他不熟悉这个类, 但类的命名规则可以帮助他弄清你的意图------如何用安全的方式初始化、使用和销毁一个类的对象(object)。

下面,我主要讨论不同型别的主要特性。

? T 类

T 类的行为类似于C++中的内置类型,因此,它们以T作前缀(”T”代表”Type”)。象内置类型一样,它们没有析构方法(destructor),这导致的结果是:T类不能包含具有析构方法的成员变量。所以,一般情况下,T类的成员变量只能是内置类型的数据或者是其它的T类的对象。在某些的情况下T类也可以包含其它对象的指针或引用,不过,这时它们之前是“使用”关系,而不是“拥有”关系(也就是说,这个T类对象并不负责对成员的创建和销毁的工作)。不能拥有外部数据的原因是因为T类没有析构方法。正是由于没有析构方法,T类的对象可以在栈上创建,当程序流程退出函数或产生leave(一种代码异常)的时候,系统自动清除它。即使T类有一个析构方法,在发生异常(在Symbian系统中,异常被称为leave)时Symbian 系统也不会调用它,因为leave没有模仿标准C++的抛出异常的做法。

T类的对象也可以在堆上创建。但是,应当在调用有可能发生异常的代码之前,将这个对象放入到清除栈(cleanupStack),在发生异常的时候,清除栈(cleanupStack)会释放这个对象。

? C 类

这种类都是从CBase派生来的(直接或间接)。

//.h file

class CStudent:public CBase

{

public:

CStudent(){

RDebug::Print(_L("i am a student"));

};

~CStudent()

{

RDebug::Print(_L("please, don't kill me!"));

上一页  1 2 3 4 5 6 7  下一页

Tags:Symbian 开发 入门

编辑录入:coldstar [复制链接] [打 印]
赞助商链接