




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Symbian OS C+基础主要内容vSymbian 中的资源管理概述v清除栈v异常退出v类的两阶段构造v动态数组Symbian中的资源管理概述v三种资源管理方式清除栈异常退出类的两阶段构造清除栈v清除栈机制能够减少程序异常带来的内存泄漏 清除栈v使用清除栈使用清除栈的基本步骤:(1)创建对象(2)把对象指针压栈(3)使用对象提供的有可能异常退出的函数,也就函数名后缀有“L”的(4)出栈(5)根据情况决定是否释放对象 清除栈v使用清除栈示例CMyObject* obj1=new (ELeave) CMyObject;CleanupStack:Push(obj1);obj1-UseL();Cl
2、eanupStack:Pop();delete obj1;清除栈v清除栈的特殊用法 用法一CMyObject* obj1=new (ELeave) CMyObject;CleanupStack:Push(obj1);obj1-UseL();CleanupStack:PopAndDestroy(); 用法二template void CleanupClosePushL(T& aRef);template void CleanupReleasePushL(T& aRef);template void CleanupDeletePushL(T* aPtr);异常退出函数v函数带有后缀
3、“L”class CExam0303NewGuiAppUi : public CAknAppUipublic:void ConstructL();CExam0303NewGuiAppUi();virtual CExam0303NewGuiAppUi();private:void HandleCommandL(TInt aCommand);void HandleStatusPaneSizeChange();CArrayFix* HelpContextL() const;private:CExam0303NewGuiAppView* iAppView;异常退出v在程序中抛出异常CObject* p
4、Object=new CObject();if(!pObject)User:Leave(KErrNoMemory);v抛出异常的方法static void Leave(TInt aReason);static void LeaveNoMemory();static TInt LeaveIfError(TInt aReason);static TAny* LeaveIfNull(TAny* aPtr);异常退出v捕获异常的方法 TRAP TRAPDv示例1void DoStart()TInt err;TRAPD(err, MainL();if (err). . /处理异常异常退出v示例2void
5、 DoStart()TRAPD(err, MainL();if (err). . /处理异常类的两阶段构造v普遍C+类的创建及使用CMyClass* pMyClass=new CMyClass;char* pName=pMyClass-GetName();delete pMyClass;类的两阶段构造v两阶段构造的意义第一阶段是安全的第二阶段做复杂的初始化类的两阶段构造v静态方法NewLC和NewLCMySymbianClass* CMySymbianClass:NewLC()CMySymbianClass* self = new (ELeave)CMySymbianClass();Clean
6、upStack:PushL(self);self-ConstructL();return self;CMySymbianClass* CMySymbianClass:NewL()CMySymbianClass* self=CMySymbianClass:NewLC();CleanupStack:Pop(); / self;return self;类的两阶段构造v二阶段构造函数Void ConstructL()*iBuf=HBufC:NewL(1000);类的二阶段构造vSymbian OS C+类的用法 用法一:CMySymbianClass* pMyClass = CMySymbianCla
7、ss:NewLC()pMyClass-UseL(); /使用类对象UseOtherFunctionL(); CleanupStack:PopAndDestroy();类的二阶段构造vSymbian OS C+类的用法 用法二:CMySymbianClass* pMyClass = CMySymbianClass:NewL()pMyClass-Use (); /使用类对象UseOtherFunction(); delete pMyClass;类的二阶段构造v二阶段类的简化用法 类的声明class CMySymbianClass2 : public CBasepublic:CMySymbianClass();void ConstructL();CMySymbianClass();public:TInt GetSum();private:TInt m_nSum;类的二阶段构造v二阶段类的简化用法类的创建和使用CMySymbianClass2* pMySymbianClass2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政管理中公文撰写的实践性试题及答案
- 双十一营销企划方案
- 行政心理学核心概念比较试题及答案
- 管理心理学帮助降低员工压力的具体措施研究试题及答案
- 管理学应用技能试题及答案
- 2025年签订合同邀请函模板
- 《2025项目管理服务合同》
- 2025餐饮技术转让合同范本
- 2025企业员工试用合同范本
- 2025租房合同简化版
- 2024年公司网络安全管理制度
- NCCN化疗止吐指南教程
- 《小王子》讲解+知识点+教案+课件
- 2025年甘肃兰州市事业单位招考(868人)高频重点提升(共500题)附带答案详解
- 生成式人工智能的教育应用与展望-以ChatGPT 系统为例
- 妊娠期糖尿病病人的护理查房
- 幼儿园大班游戏中“一对一倾听”的策略
- 医院信息安全管理课件
- 传染病处置规范与流程
- 拍卖合同范本大全(2025年)
- 中医临床诊脉教学
评论
0/150
提交评论