一、基本数据类型
刚一看不是用C++ 吗,但感觉好陌生啊,原来是用了typedef。
基本数据类型在文件e32def.h文件中。
typedef void TAny
typedef signed char TInt8
typedef unsigned char TUint8
typedef short int TInt16
typedef unsigned short int TUint16
typedef long int TInt32
typedef unsigned long int TUint32
typedef singned int TInt.
typedef unsingned int TUint
typedef float TReal32
typedef double TReal64
typedef double TReal
typedef unsigned char TText8
typedef unsigned unsigned short char TText16
typedef int TBool
typedef TUint32 TLinAddr
symbian C++中 没有字符串string 而是描述符,分为三类:缓冲描述符、指针描述符、堆描述符
A。缓冲描述符:TBuf 和 TBufC 类似与char[ ] :TBuf<20> str
B。指针描述符:TPtr 和 TPtrC 类似于 char *
C。堆描述符: HBufC 例:HBufC *buf = HBufC::NewL(128); 与byte *buf = (byte*)malloc(128); 一样
所有描述符 后面的C 表示C++ 中的 CONST 不可修改的描述符。
常用函数
Length() 得到字符串的真实长度,Size()得到字符串的字节数
Left() / Right()/Mid() 获取字符子串
Compare() 比较函数
Location() / LocationReverse() /Find() /Match() c查找字符字串
//错误处理
有三个概念,一是Leave。最常见的地方是对new操作符的重载new(ELeave),表示此时的构造会产生内存不足的现象。
有了new(ELeave),我们就可以放心地在new一个对象之后直接使用它而不需要去判断是否构造成功,因为如果不成功会抛出错误并返回上层。
第二个概念配合Leave,有一个宏TRAPD(error,Func)类似于try...catch...。
也就是说如果Func函数中发生了Leave,则error能得到错误码。一般在程序中可以用User::Leave()来抛出错误,类似于throw new Exception的操作。
第三个概念也是最常用的,就是清理栈CleanupStack的使用。
取代TRAPD宏的使用,我们可以在可能发生Leave之前将指针push到cleanupstack中,在正确完成之后再将它pop出来,如果万一不成功,系统会帮我们将cleanupstack中的东西销掉。这样就方便了很多。