Symbian OS C++编程技巧与内存管理

需积分: 2 2 下载量 182 浏览量 更新于2024-12-11 收藏 380KB PDF 举报
"Symbian OS C++程序员编码诀窍" 这篇文档是针对Symbian OS平台上C++开发者的指导,主要讲述了在编写Symbian OS应用程序时的一些关键编码技巧和最佳实践。Symbian OS是一个曾经广泛用于智能手机的操作系统,尤其是在诺基亚手机中。这份文档由诺基亚论坛发布,旨在帮助开发者提高代码质量,避免常见错误,并有效地管理内存。 1. **简介**: 文档适用于那些想要深入理解Symbian OS C++编程的开发者,内容涵盖了内存管理、异常处理和资源清理等方面。它强调了在Symbian OS环境下编程的特殊性,以确保程序的稳定性和效率。 2. **内存管理**: - **清除堆栈(CleanupStack)**:在Symbian OS中,清除堆栈是一个重要的概念,用于在异常发生时确保正确释放资源。所有程序都应该检查“资源用尽”错误,以防止内存耗尽导致的问题。 - **规则1:异常退出函数和捕获模块**:异常退出函数在异常发生时被调用,以清理分配的资源。`new(ELeave)`运算符用于创建对象并在发生异常时抛出错误。`NewL()`和`NewLC()`是两种常见的构造函数,它们在失败时会自动清理分配的内存。 - **规则2:使用清除堆栈**:清除堆栈用于存储临时对象,当异常发生时,它会自动清理堆栈上的对象,确保资源得到释放。 - **规则3:两阶段构造**:推荐使用`NewL()`和`NewLC()`进行两阶段构造,这样可以确保在构造过程中分配的资源在异常情况下被正确处理。 3. **常见错误**: - **误用TRAP和TRAPD**:TRAP和TRAPD用于异常处理,但不正确使用可能导致资源泄露或错误的异常处理。 - **错误使用new运算符**:在Symbian OS中,new运算符的使用必须谨慎,因为它不包含异常处理机制。 - **错误使用后缀‘L’**:后缀‘L’表示函数返回一个临时对象,但如果不正确使用,可能会导致内存问题。 4. **内存泄漏检测**: 文档还提到了使用WINS模拟器中的工具来检测内存泄漏,这对于确保程序的健壮性至关重要。 5. **检查和严重提示**: 检查和严重提示是调试和诊断代码时的重要工具,正确使用它们可以帮助开发者快速定位和解决问题。 这份文档为Symbian OS C++程序员提供了宝贵的指导,涵盖了从基础的内存管理到高级的异常处理策略,对于想要在Symbian平台上编写高效、稳定的C++代码的开发者来说,是一份不可或缺的参考资料。