Symbian C++编程指南:内存管理与异常处理
需积分: 0 162 浏览量
更新于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`后缀的含义,是保证代码健壮性的重要方面。通过有效的内存泄漏检测,开发者可以及时发现和解决潜在问题,提高软件的稳定性和可靠性。
2009-10-19 上传
130 浏览量
2008-01-18 上传
2008-11-26 上传
2008-03-20 上传
2010-06-06 上传
2012-03-24 上传
2009-11-04 上传
2024-10-21 上传
qianlima210210
- 粉丝: 89
- 资源: 49
最新资源
- Postman安装与功能详解:适用于API测试与HTTP请求
- Dart打造简易Web服务器教程:simple-server-dart
- FFmpeg 4.4 快速搭建与环境变量配置教程
- 牛顿井在围棋中的应用:利用牛顿多项式求根技术
- SpringBoot结合MySQL实现MQTT消息持久化教程
- C语言实现水仙花数输出方法详解
- Avatar_Utils库1.0.10版本发布,Python开发者必备工具
- Python爬虫实现漫画榜单数据处理与可视化分析
- 解压缩教材程序文件的正确方法
- 快速搭建Spring Boot Web项目实战指南
- Avatar Utils 1.8.1 工具包的安装与使用指南
- GatewayWorker扩展包压缩文件的下载与使用指南
- 实现饮食目标的开源Visual Basic编码程序
- 打造个性化O'RLY动物封面生成器
- Avatar_Utils库打包文件安装与使用指南
- Python端口扫描工具的设计与实现要点解析