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

需积分: 0 0 下载量 20 浏览量 更新于2024-09-29 收藏 380KB PDF 举报
"Symbian OS C++程序员编码诀窍" Symbian OS 是一个专为移动设备设计的操作系统,而C++是其主要的开发语言。这篇文档是针对Symbian OS C++程序员的一份编码指南,旨在提供最佳实践和技巧,以确保代码的稳定性和效率。 1. 引言 这份文档面向的是已经有一定C++基础,并希望深入学习Symbian OS平台编程的开发者。它涵盖了内存管理、异常处理和错误检查等方面的关键知识点。 2. 内存管理 在Symbian OS中,内存管理是至关重要的,因为它直接影响到应用程序的性能和稳定性。文档强调了以下几个方面: 2.1 清除堆栈(CleanupStack) 清理堆栈是一种用于确保内存正确释放的技术,尤其是在异常发生时。所有程序都应考虑资源耗尽的情况,传统的错误检测方法可能不足以应对复杂情况。Symbian OS为此提供了解决方案。 2.2 异常退出函数和捕获模块 - 异常退出函数是处理错误和异常的关键,它们确保在异常发生时正确清理资源。 - `new(ELeave)`运算符用于分配内存,并在失败时抛出ELeave异常。 - `NewL()`和`NewLC()`是两种常见的构造函数,它们分别在构造完成后立即返回一个局部对象,并将其添加到清理堆栈。 - `TRAP`和`TRAPD`用于捕获和处理错误,后者提供更详细的调试信息。 2.3 清除堆栈(CleanupStack) - 清除堆栈用于自动管理临时对象,确保在异常情况下也能正确释放。 - 它是保证内存安全的重要工具,必须在分配对象后将其添加到清理堆栈,并在不再需要时从中移除。 2.4 两阶段构造 - Symbian OS推荐使用两阶段构造来分配和初始化对象,以防止在分配过程中出现异常。 - `NewL()`和`NewLC()`帮助实现这一过程,前者在构造后立即返回,后者同时创建一个局部拷贝。 2.5 公共错误 - 避免误用`TRAP`和`TRAPD`,确保正确处理异常。 - 使用`new`运算符时需谨慎,因为它不会自动处理内存异常。 - 注意后缀`L`的使用,它表示函数在本地(local)环境中执行,通常与清理堆栈一起使用。 2.6 内存泄漏检测 - Symbian OS提供了WINS模拟器工具来检测内存泄漏,帮助开发者找到并修复问题。 2.7 检查和严重提示(A"... 文档的这部分可能涉及到更深入的错误检查和调试技术,包括如何利用系统提供的工具进行错误诊断。 总结: 这份文档为Symbian OS C++程序员提供了一套详细的编码规则和最佳实践,涵盖了从内存管理到异常处理的多个重要方面,帮助开发者编写更加健壮和可靠的代码。遵循这些准则,可以有效避免常见的编程陷阱,提高软件质量。