Symbian开发入门
2010-06-03 23:07:00 来源:WEB开发网}
在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!"));
- ››开发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的批处理代码
更多精彩
赞助商链接