- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Symbian OS 类型和声明 引 言 Symbian OS 定义了一系列的基本类型和类: 利用typedefs提供独立于编译器的类型定义 Symbian OS 代码由许多不同的编译器编译 描述公共的Symbian类的主要功能和行为 例如, 是否他们可以在堆上创建, 在栈上创建或者二者任选其一都可以(并且指出他们被创建后怎么被清除掉)。 阐明如何对每种类的对象进行创建,使用和销毁 Symbian OS 在每个类名的前面使用简名前缀的习惯 (T, C, R 或者 M). 不使用前缀的类只可能是那些拥有静态成员函数的类。 Symbian OS 类型和声明 Symbian OS的基本类型 知道基本的Symbian OS类型与本地内置(native built-in)的C++类型的关联 理解Symbian基本类型要优先于本地内置的C++基本类型(如bool, int, float等等 )使用,因为他们是独立于编译器的 Symbian OS的基本类型 TInt, TUint, TInt64, TReal, TAny* and TBool的类型定义 TIntX 和 TUintX (在这里 X 可以是8, 16 和 32) 分别表示8位、16位和32位的有符号或者无符号整数 没有指定 (X) 的 TInt 或者 TUint 类型的相应分别表示有符号或者无符号的32比特整型 TInt64 和 TUInt64 定义了长整型,从而可以支持64位数据 TReal32 和 TReal64 被用于单精度、双精度和浮点数, 分别相当于 float 和 double类型 TReal 相当于 TReal64 TAny* 被用于代替 void*, 通过一个typedef将指针定义可以 “指向任何类型” 注意: 没有必要把本地(native)的void 类型都替换成 TAny TBool 被用于表示布尔类型,相当于 int 型 Symbian OS 中定义 ETrue (= 1) 并且 EFalse (= 0) Symbian OS 类型和声明 ?T 类 知道T类的目的,它可以拥有什么样的成员数据,不能拥有什么样的成员数据,并且永远不可以有析构函数 知道T类可以拥有什么类型的函数 理解T类是可以在堆上或者是栈上创建 理解T类和传统的C/C++ 结构体是可以二选其一的 知道T前缀也可以用来定义枚举(enum)类型 T 类的属性和行为 T 类就像 C++ 内置类型一样使用 因此和Symbian基础类型一样(如TInt 等),拥有 ’T’ 前缀 就如内置类型一样,T类没有析构函数 注意: C++要求类具有隐式析构函数,但是类的使用者不应依赖它被调用来实现清理工作 T 类不能拥有指向资源的指针和句柄 但可以包含由其他对象拥有的对象指针和资源句柄 T 类把数据都包含在它的内部 其他类的内置类型和对象 属于“使用”(use-a)的关系,而不是“拥有”(has-a)的关系的指针和引用。拥有关系意味着“所属”(ownership)关系。 T 类的属性和行为 T 类可以在堆上建立 当存在潜在的异常退出(Leave)的可能时,指向类对象的指针应当首先压入清除栈中,然后再调用相关代码。在发生异常退出后,T类对象的内存空间被收回,但是没有调用析构函数。 T 类经常在没有默认构造函数的情况下被定义 典型的,T类只能由内置类型组成,它的初始化方式和结构(struct)类似 T 类的属性和行为 典型的T 类拥有简洁的API 简单的,说一个C类结构由公共数据组成 有一些T类拥有复杂的 API 例如词法分析类 TLex 和描述符基类 TDesC 和 TDes T前缀也用于枚举, 因为这些都是简单类 异常退出(Leave)和异常(Exception)说明 由于消除了用析构函数来清除对象的依赖,这意味着一个T类对象可以在栈上创建,并且当退出函数作用域时(无论是正常返回还是由于异常退出),都能够被正确的清除掉。 历史上的Symbian OS (Symbian OS v9.2以前的版本) 的异常退出是一个远跳操作(long jump),它不能对栈进行回溯展开 (unwind)(任何建立在栈上的内容都将被忽略,例如, 析构函数不会被调用) ... ... 这样意味着,潜在的指向堆对象的孤指针会产生了内存泄露 - 因此不允许T类拥有指针 Symbian OS 现在支持标准 C++的异常 ,它能够展开栈,并调用所有栈中对象的析构函数 Symbian OS 类型和声明 ?C 类 注意 C类总是从 CBase 类上继承而来 了解定义C类的目的和它可以拥有什么样类型的数据 理解 C 类必须在堆上进行实例化 知道C类采取两阶段构造的方式,并且在堆上分配的时候它的数据成员被自动填充
文档评论(0)