C++设计小经验
来源:互联网 发布:淘宝卖家花呗怎么开通 编辑:程序博客网 时间:2024/04/28 09:34
1、派生和组合
(1)若在逻辑上B 是A 的“一种”(a kind of ),则允许B 继承A 的功能。如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。那么类Man 可以从类Human 派生,类Boy 可以从类Man 派生。
(2)若在逻辑上A 是B 的“一部分”(a part of),则不允许B 继承A 的功能,而是要用A和其它东西组合出B。例如眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部分,所以类Head 应该由类Eye、Nose、Mouth、Ear 组合而成,不是派生而成。
2、虚函数和多态
结合“抽象基类”和“多态”有如下突出优点:
(1)应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。这一
招叫“以不变应万变”,可以大大提高程序的可复用性(这是接口设计的复用,而不是代码实现的复用)。
(2)派生类的功能可以被基类指针引用,这叫向后兼容,可以提高程序的可扩充性和可维护性。以前写的程序可以被将来写的程序调用不足为奇,但是将来写的程序可以被以前写的程序调用那可了不起。
3、new和delete
预防“野指针”,“野指针”是指向“垃圾”内存的指针,主要成因有两种:
(1)指针没有初始化。
(2)指针指向已经释放的内存,这种情况最让人防不胜防,以释放内存的指针最好指向NULL,这是好的编程风格。
4、用好const
(1)在定义一个常量时,const 比#define 更加灵活。用const 定义的常量含有数据类型,该常量可以参与逻辑运算,有类型检查等好处。
(2)强制保护函数的参数值不发生变化
对于一个函数而言,如果其‘&’或‘*’类型的参数只作输入用,不作输出用,那么应当在该参数前加上const,以确保函数的代码不会改变该参数的值(如果改变了该参数的值,编译器会出现错误警告)。
(3)强制保护类的成员函数不改变任何数据成员的值
5、使用匈牙利命名法
6、其他建议
(1)不要编写一条过分复杂的语句,紧凑的C++/C 代码并不见到能得到高效率的机器代码,却会降低程序的可理解性,程序出错误的几率也会提高。
(2)不要编写集多种功能于一身的函数,在函数的返回值中,不要将正常值和错误标志混在一起。
(3)不要将BOOL 值TRUE 和FALSE 对应于1 和0 进行编程。大多数编程语言将FALSE定义为0,任何非0 值都是TRUE。Visual C++将TRUE 定义为1,而Visual Basic 则将TRUE定义为-1。
(4)小心不要将“= =”写成“=”,编译器不会自动发现这种错误。
(5)不要将123 写成0123,后者是八进制的数值。
(6)将自己经常犯的编程错误记录下来,制成表格贴在计算机旁边。
详细可参考:http://pcedu.pconline.com.cn/empolder/gj/c/0504/609482_5.html
- C++设计小经验
- c语言设计的一些经验
- C/S框架设计经验小结
- 小经验
- 小经验
- 小经验
- 小经验
- Xilinx FPGA设计经验小谈 2012_7_28
- 个人小经验 ---关于PCB板设计1
- 设计经验
- 设计经验
- 设计经验
- 小技巧、小经验
- WORD使用小经验
- 一个小经验.
- SQLMAP 小经验
- vc编程小经验
- Hibernate3使用小经验
- 解决windows系统些mysql创建表名小写问题
- 1. ApplicationContext和BeanFactory的区别
- 移动支付解决方案提供商——Tyfone
- 在日志被删除的情况下,log4j如何配置可以自动创建新日志
- 该好好学习了
- C++设计小经验
- SimpleDateFormat函数语法
- 传智播客学习之Android运行原理
- 传智播客学习之Android-界面布局
- 传智播客学习之Android-通知
- 设置漂亮的工具条(代码是拷贝来的,但是经过试验)
- 传智播客学习之SQLite数据存储
- 有感于客户第一
- 传智播客学习之面试-单态设计模式