正文

C++/C代码审查表(四)2007-04-11 22:08:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lym51/24812.html

分享到:

重要

是否用内联函数取代了宏代码?

 

 

……

 

类的构造函数、析构函数和赋值函数

重要性

审查项

结论

重要

是否违背编程规范而让C++ 编译器自动为类产生四个缺省的函数:1缺省的无参数构造函数;(2)缺省的拷贝构造函数;(3)缺省的析构函数;(4)缺省的赋值函数。

 

重要

构造函数中是否遗漏了某些初始化工作?

 

重要

是否正确地使用构造函数的初始化表?

 

重要

析构函数中是否遗漏了某些清除工作?

 

 

是否错写、错用了拷贝构造函数和赋值函数?

 

重要

赋值函数一般分四个步骤:(1)检查自赋值;(2)释放原有内存资源;(3)分配新的内存资源,并复制内容;(4)返回 *this。是否遗漏了重要步骤?

 

重要

是否正确地编写了派生类的构造函数、析构函数、赋值函数?注意事项:

1)派生类不可能继承基类的构造函数、析构函数、赋值函数。

2)派生类的构造函数应在其初始化表里调用基类的构造函数。

3)基类与派生类的析构函数应该为虚(即加virtual关键字)。

4)在编写派生类的赋值函数时,注意不要忘记对基类的数据成员重新赋值。

 

 

……

 

类的高级特性

重要性

审查项

结论

重要

是否违背了继承和组合的规则?

1)若在逻辑上BA的“一种”,并且A的所有功能和属性对B而言都有意义,则允许B继承A的功能和属性。

2)若在逻辑上AB的“一部分”(a part of),则不允许BA派生,而是要用A和其它东西组合出B

 

 

……

 

其它常见问题

重要性

审查项

结论

重要

数据类型问题:

(1)变量的数据类型有错误吗?

(2)存在不同数据类型的赋值吗?

(3)存在不同数据类型的比较吗?

 

阅读(2321) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册