Symbian C++编程最佳实践与内存管理
需积分: 0 123 浏览量
更新于2024-12-16
收藏 380KB PDF 举报
"symbian C++编程注意规则"
在Symbian OS的C++编程中,遵循特定的规则和最佳实践对于确保代码的稳定性和效率至关重要。这份文档由诺基亚论坛提供,主要针对Symbian C++程序员,旨在帮助他们理解和避免常见的编程陷阱。
1. 引言
这份文档面向的读者是对Symbian C++编程有基础了解的开发者,其目的是为了提升编程质量,防止因不当操作导致的问题。文档内容涵盖内存管理、异常处理和资源清理等方面。
2. 内存管理
2.1 清除堆栈(CleanupStack)
Symbian OS中的内存管理特别强调了清除堆栈的使用,以确保在异常情况下资源得到正确释放。所有程序都应该检查可能出现的"资源用尽"错误,并采用适当的方法来处理。
2.1.1 程序应该始终检查资源是否可用,以防止内存耗尽导致的崩溃。
2.1.2 传统调试方法通常依赖于try-catch结构,但这在Symbian OS中不是最佳实践。
2.1.3 使用传统方法可能导致在异常情况下内存泄漏,因为资源可能未被正确释放。
2.1.4 Symbian OS引入了清除堆栈机制,用于解决上述问题。
2.2 异常退出函数和捕获模块
2.2.1 异常退出函数是在发生错误时调用的,用于清理资源。
2.2.2 `new(ELeave)`运算符用于创建对象,如果内存不足,会抛出ELeave异常。
2.2.3 `NewL()`和`NewLC()`是构造函数的扩展形式,用于支持两阶段构造并处理异常。
2.2.4 `TRAP`和`TRAPD`是用于异常处理的宏,捕获模块帮助跟踪错误。
2.3 使用清除堆栈
2.3.1 清除堆栈用于存储临时对象的指针,确保在异常情况下能正确删除它们。
2.3.2 开发者应该习惯于在函数中使用清除堆栈来管理对象的生命周期。
2.4 两阶段构造
2.4.1 `NewL()`和`NewLC()`函数允许在分配内存和初始化对象之间进行分离,以确保在内存分配失败时不会执行初始化代码。
2.5 公共错误
2.5.1 错误使用`TRAP`和`TRAPD`可能导致错误的异常处理。
2.5.2 不正确地使用`new`运算符可能导致内存泄漏或未定义的行为。
2.5.3 在不应使用的地方使用后缀`L`(表示本地对象)可能导致资源管理问题。
2.6 内存泄漏检测
2.6.1 在WINS模拟器中,可以使用特定工具来检测内存泄漏,帮助定位和修复问题。
2.7 检查和严重提示
文档还提到了使用检查和严重提示工具来帮助调试和优化代码,确保程序的健壮性。
总结,Symbian C++编程的关键在于理解并遵循内存管理规则,特别是清除堆栈的使用,以及异常处理机制。通过遵循这些规则,开发者可以编写出更稳定、更易于维护的Symbian应用程序。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-02-02 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
柳晛
- 粉丝: 136
- 资源: 104
最新资源
- Struts In Action (Manning).pdf
- FPGA-CPLD 数字电路设计经验分享
- Ubuntu Server Administration(2009).pdf
- 2009年四级网络工程师模拟试题及答案
- dissecting mfc
- STK ——Satellite Tool Kit(卫星工具箱)学习课件
- c#word操作的常用方法
- MyEclipse中运行Shark源代码
- 棋盘覆盖问题.doc
- matlab函数大全
- 计算机组成原理答案,供大家参考
- Hough变换检测直线Matlab代码
- Advanced_bash_scripting_guide.pdf
- 26步获得 网站流量
- JAVA认证-310-055-Q&A-TEST KILLER
- 谭浩强C语言word版