对于(学习c++)的c程序员的建议
2001-10-27 14:47
489 查看
出自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联接模式。
最重要的,试着将一个程序看作交互概念(译者:成员和方法??),并显示为类和实例的,而不是函数操纵的一堆数据结构。
对于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联接模式。
最重要的,试着将一个程序看作交互概念(译者:成员和方法??),并显示为类和实例的,而不是函数操纵的一堆数据结构。
相关文章推荐
- 对于(学习c++)的c程序员的建议
- 李开复对于程序员的算法学习建议
- 李开复对于程序员的算法学习建议
- 一位资深程序员大牛给予Java初学者的学习路线建议
- 一位资深程序员大牛给予Java初学者的学习路线建议
- 一位资深程序员大牛给予Java初学者的学习路线建议
- 建议的程序员学习LDA算法的步骤
- 一位资深程序员大牛给予Java初学者的学习建议
- 如何准备阿里社招面试,顺谈 Java 程序员学习中各阶段的建议
- 对于人工智能的学习有哪些建议?【转】
- 一位资深程序员大牛给予Java初学者的学习路线建议
- PHP程序员突破成长瓶颈 - 附学习建议
- 一位资深程序员大牛给予Java初学者的学习建议
- 一位资深程序员大牛给予Java初学者的学习路线建议
- 一位资深程序员大牛给予Java初学者的学习路线建议
- 一位资深程序员大牛给予Java初学者的学习路线建议
- 对于初学者学习Java语言的建议(转载)
- 建议的程序员学习LDA算法的步骤
- 对于学习开发语言的一点建议
- 一位资深程序员大牛给予Java初学者的学习路线建议