Symbian C++编程指南:内存管理与异常处理
需积分: 3 158 浏览量
更新于2024-08-02
收藏 380KB PDF 举报
"symbian C++开发注意事项.pdf"
在Symbian OS的C++开发中,有若干重要的注意事项和最佳实践。这篇文档主要面向已经具备一定C++基础,并希望深入理解Symbian平台特性的开发者。以下是关键知识点的详细说明:
1. **内存管理**
- **清理堆栈(CleanupStack)**:Symbian OS强调在异常情况下正确释放资源,使用CleanupStack可以确保在函数退出时自动清理分配的内存,避免内存泄漏。所有程序应检查“资源用尽”错误,以防内存不足。
- **规则1:异常退出函数和捕获模块**:
- 异常退出函数(如Exit())用于在错误发生时安全地终止执行。
- 使用`new(ELeave)`运算符确保在内存不足时抛出异常。
- `NewL()`和`NewLC()`是创建对象并自动添加到CleanupStack的标准方式。
- `TRAP`和`TRAPD`用于捕获错误,其中`TRAPD`提供了额外的调试信息。
- **规则2:使用CleanupStack**:在函数中分配的资源应当立即放入CleanupStack,这样在异常退出时,CleanupStack会自动清理这些资源,保证了内存的正确释放。
- **规则3:两阶段构造**:使用`NewL()`和`NewLC()`进行对象的两阶段构造,第一阶段创建对象,第二阶段执行对象的初始化。
2. **常见错误**:
- 错误使用`TRAP`和`TRAPD`可能导致错误处理不当,必须确保在适当的地方使用它们。
- 不正确地使用`new`运算符可能导致内存泄露或未初始化的对象。
- 后缀`L`表示函数返回一个局部对象,错误地使用可能导致对象生命周期管理问题。
3. **内存泄漏检测**:
- 在WINS模拟器中,可以利用工具来检测内存泄漏,帮助开发者定位和修复问题。
4. **检查和严重提示(A“Severe”Message)**:Symbian OS鼓励使用`User::LeaveIfError()`或`User::Info()`等函数来记录和处理错误,这有助于调试和诊断。
总结起来,Symbian C++开发的关键在于理解并遵循内存管理规则,尤其是使用CleanupStack进行异常情况下的资源清理,以及正确使用异常退出机制和捕获模块。同时,避免常见的编程错误,如滥用`new`运算符和错误理解`L`后缀的含义,是保证代码健壮性的重要方面。通过有效的内存泄漏检测,开发者可以及时发现和解决潜在问题,提高软件的稳定性和可靠性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2008-01-18 上传
128 浏览量
2008-03-20 上传
2010-06-06 上传
255 浏览量
2009-11-04 上传

qianlima210210
- 粉丝: 89
最新资源
- 罗克韦尔连接系统产品目录详览
- Swift高效刷题技巧分享,LeetCode实践心得
- 自动生成专业README的Node.js工具
- 掌握计划数据检查的要点与技巧
- Zipkin Jar包在微服务中的分布式追踪应用
- Struts2开发必备jar包及其Spring、JSON支持包指南
- 探索奥林板式换热器选型计算软件V15S的优势与特点
- SVN Patch自动化工具:快速提取版本改动文件
- 罗克韦尔CENTERLINE 2500马达控制中心手册
- Apache POI 3.8版本jar包详细介绍
- OpenShift快速部署模板:一键生成构建管道
- Reactjs结合socket.io打造聊天框前端
- OAuth 2.0 授权服务器示例详解
- yalmip工具包:Matlab平台的综合规划求解工具
- 《打开算法之门》:计算机算法的全面解析
- 海茵兰茨11-50SN编码器参数及安装指南