一个人对C了解得越好,在写C++程序时大概就越难避免C的风格,并会因此丢掉某些潜在C++的优势。这里需要提醒的是一定要多多注意C与C++之间的差异。以下有几个有关的要点,需要和大家讨论一下:
- 在C++里几乎不需要使用宏。用Const 或 Enum定义明显的常量,用inline避免函数调用的额外开销,用template去刻画一族函数或者类型,用namespace去避免名字冲突。
- 不要在你需要变量之前去声明它,以保证你能立即对它进行初始化。声明可以出现在能出现语句的所有位置上,可以出现在for语句的初始化部分,也可以在条件中。
- 不要用malloc()。new运算符能将同样的事情做的更好。对于realloc(),请试一试vector()。
- 试着去避免使用void*、指针算术、联合和强制,除了在某些函数或类实现的深层之外。在大部分情况下,强制都是设计错误的指示器。如果你必须使用某个显式的类型转换,请设法去用一个“新的强制”,设法写出一个描述你想做的事情的更精确的语句。
- 尽量少用数组和C风格的字符串。与传统的C风格相比,使用C++标准库string和vector常常可以简化程序设计。
- 如果要符合C的连接规则,一个C++函数就必须被声明为具有C的连接的。
最重要的是,试着将程序考虑为一组由类和对象表示的相互作用的概念,而不是一堆数据结构和一些去拨弄数据结构中二进制位的函数。
( 选自《C++程序设计语言》) |