C++编码中减少内存缺陷的方法和工具
上一篇 /
下一篇 2012-07-20 09:29:12
/ 个人分类:C++
51Testing软件测试网GCrRmJ'R:`5t 概要:基于C++的软件的缺陷和错误大部分都和内存相关,预防、发现、消除代码中和内存相关的缺陷,成为程
序员编写、调试、维护代码时的重要任务。该文基于“面向网络海量空间信息的大型GIS”课题的工程实践,提出和总结了如何使用C++语言机制、开发环境和
相关质量保证工具来预防、发现各种编译期、运行期内存缺陷的方法和工具。51Testing软件测试网%VKaX4u0v7z4[2B!\HS
51Testing软件测试网^}f%bf8Y)d6G C++语言是桌面系统,尤其是系统软件、大型应用软件的主流开
发语言。C++语言以其灵活性著称,同时也更复杂。利用C++编写健壮的代码,更具有挑战性。C++允许动态内存管理,
同时也容易导致更多和内存相关的问题。一般而言, 除了系统设计上的缺陷,
基于C++的软件的缺陷和错误大部分都和内存缺陷(主要包括内存访问错误和内存泄漏两类)相关。
所以,消除代码中的内存相关缺陷,成为程序员编写、调试、维护代码中的任务,也是保证软件质量的关键。51Testing软件测试网[~?'_"|/^L'Rc;B(G
Oz?;SR tE0 本文的工作基
于“863”计划项目“面向网络海量空间信息的大型GIS”课题。该系统是基于C++/MFC编写,开发环境是Visual Studio .net
2003。本文基于此项目的工程实践,总结了如何使用C++语言机制、开发环境和相关质量保证工具来预防、发现各种编译期、运行期和内存相关的缺陷的方法
和工具。51Testing软件测试网N,?6s7`#`/V
51Testing软件测试网(kK5Mom"]ms
P 1、遵循C++相关的编码规范和惯用法,预防缺陷
nn| LGkM;X0;H5IU'w1i0 编码规范是语言相关的规则,是经过实践总结出来的经验。良好的编程标准将有效地帮助开发人员避免开发有潜在危险的代码。一般来说,为了减少内存缺陷,应该遵循下列编码规则:51Testing软件测试网A4s7^~K'SMw
51Testing软件测试网A-U:U.BL (1)基类或者带有虚函数的类应该将其析构函数声明为虚函数。51Testing软件测试网\:U(h
G_
51Testing软件测试网T5HMzS E (2)在构造函数中防止内存泄漏,在析构函数中不要抛出异常。51Testing软件测试网8pt~2R*}
51Testing软件测试网pg0|#E|&T_ (3)使用对应形式的new和delete。即:用delete来释放new申请的内存,delete[]释放new[]申请的内存。
2?$epC
O2cD9X%D[0*|+rv*y;l
M.Q0 (4)指针在使用前必须初始化,指向动态内存的指针在释放后应立即置为空。