Symbian OS C++编程技巧:解决内存管理与异常处理

需积分: 4 20 下载量 2 浏览量 更新于2024-12-26 收藏 380KB PDF 举报
《Symbian+OS+C++程序员编码诀窍》是一份由诺基亚论坛发布的指南,专为Symbian OS平台上的C++程序员设计,特别是针对那些在2003年10月24日及以后使用该操作系统进行开发的开发者。这份文档详细探讨了在Symbian OS环境中编程的一些关键技巧和最佳实践。 1. **读者对象和范围**: 这份文档的目标读者是熟悉Symbian OS和C++的开发者,内容覆盖了内存管理、错误处理、构造函数使用等主题,旨在提高代码质量和避免常见问题。 2. **内存管理**: - **清除堆栈(CleanupStack)**:作者强调了正确处理内存清理的重要性,特别是在资源有限的嵌入式系统中。建议所有程序都检查“资源用尽”错误,并提供了一种Symbian OS特定的解决方案,如使用`CleanupStack`。 - **规则1:异常退出函数和捕获模块**: - 异常退出函数(例如`ELeave`)用于确保资源的清理,即使在抛出异常时也能执行。 - `new(ELeave)`运算符和`NewL()`、`NewLC()`函数的使用,遵循特定的约定来实现更安全的内存管理。 - `TRAP`和`TRAPD`与捕获模块的配合,有助于在错误发生时执行适当的清理操作。 - **规则2:使用清除堆栈** - 建议在函数结束时使用`CleanupStack`来自动清理内存,确保资源的正确释放。 3. **构造函数和错误处理**: - **规则3:两阶段构造** - 提倡使用`NewL()`和`NewLC()`来实现对象的初始化和内存分配分两个阶段,以减少内存泄露的风险。 - **公共错误**: - 避免误用`TRAP`和`TRAPD`,它们可能导致意外的错误处理或内存泄漏。 - 注意`new`运算符的正确使用,以防止内存分配失败时产生未初始化的内存。 - 提醒开发者避免使用后缀`L`错误地表示静态或本地存储,确保对内存类型有清晰理解。 4. **内存泄漏检测**: - 文档提供了使用WINS模拟器中的工具来检测内存泄漏的方法,这对于调试和性能优化至关重要。 5. **检查和严重提示**:文档强调了定期检查代码和使用严重提示的重要性,以及时发现并修复潜在问题。 《Symbian+OS+C++程序员编码诀窍》为Symbian OS平台下的开发者提供了一套实用的编码指南,帮助他们编写高效、健壮且符合最佳实践的C++代码。