给C程序员的建议

  一个人对C了解得越好,在写C++程序时大概就越难避免C的风格,并会因此丢掉C++的某些潜在优势。请看一看附录B,那里描述了C与C++之间的差异。这里是几个有关的要点,在这些地方做同样的事情时,在C++里存在比C更好的方式:

1、在C++里几乎不需要用宏。用const或enum定义明显的常量,用inline避免函数调用的额外开销,用template去刻画一族函数或者类型,用namespace去避免名字冲突。

2、不要在你需要变量之前去声明它,以保证你能立即对它进行初始化。声明可以出现在能出现语句的所有位置上,可以出现在for语句的初始化部分,可以出现在条件中。

3、不要用malloc()。new运算符能将同样的事情做得更好。对于realloc(),请试一试vector()。

4、试着去避免void*、指针算术、联合和强制,除了在某些函数或类实现的深层之外。在大部分情况下,强制都是设计错误的指示器。如果你必须使用某个显式的类型转换,请设法去用一个“新的强制”,设法写出一个描述你想做的事情的更精确的语句。

5、尽量少用数组和C风格的字符串。与传统的C风格相比,使用C++标准库string和vector常常可以简化程序设计。

如果要符合C的连接规则,一个C++函数就必须被声明为具有C连接的。

  最重要的是,请试着将程序考虑为一组由类和对象表示的相互作用的概念,而不是一堆数据结构和一些去拨弄数据结构中的二进制位的函数。

🔚