对于(学习c++)的c程序员的建议
出自c++ programming language 1.6.1节 翻译的不好请大家指教
对于c程序员的建议
一个人越熟悉c,就越难避免写c模式的c++程序。因此,会丢失一些潜在的c++的优点。请看附录B,它描述了c和c++的不同。这里有几点是使用c++模式的程序比c程序的模式要好。
1。宏从来没有必要在c++中,使用const或者enum定义静态变量,用inline避免函数调用开销,template去指出函数和类型族,namespace避免命名冲突。
2。不要在使用一个变量之前声明它(译者,不要提前声明,什么时候使用什么时候声明,并立即初始化)。应为声明可以在任何地方(译者,与c比较),包括在for和if 的条件中。
3。不要使用malloc(),new操作符做同样的事情,而且做的更好。代替realloc()的东西,可以试一下vector.
4。尽量避免void*,指针算法(pointer arithmetic),联合(union)和造型(cast 就是类型转换)。在大部分情况下造型是错误设计的表现。如果你必须强制类型转换,试着用"新造型(new casts)",因为使你做的处于更精确的状态下。
5。减少使用c模式下的字符数组,c++标准类库提供string和vector类,能够简化程序(同传统的c模式比较),在一般情况下,不要自己编写程序实现标准库里已经存在的功能。
为了适应c的联接习俗,c++函数必须声明为c联接模式。
最重要的,试着将一个程序看作交互概念(译者:成员和方法??),并显示为类和实例的,而不是函数操纵的一堆数据结构。