Bjarne Stroustrup(BS)博士在 The C++ Programming Language(Special Edition)中对读者的忠告1(摘抄)

王朝c/c++·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Bjarne Stroustrup(BS)博士在 The C++ Programming Language(Special Edition)中对读者的忠告(摘抄)

第1章 致读者

1. 在编程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示。让程序的结构尽可能地直接反映这些思想:

a. 如果你能把“它”看成一个独立的概念,就把它做成一个类。

b. 如果你能把“它”看成一个独立的实体,就把它做成某个类的一个对象。

c. 如果两个类有共同的界面,将此界面做成一个抽象类。

d. 如果两个类的实现有某些显著的共同东西,将这些共性做成一个基类。

e. 如果一个类是一种对象的容器,将它做成一个模板。

f. 如果一个函数实现对某容器的一个算法,将它做成为对一族容器可用的模板函数。

g. 如果一组类、模板等相互之间有逻辑联系,将它们放进一个名字空间里。

2. 在你定义一个并不是实现某个像矩阵或复数这样的数学对象的类时,或者定义一个低层的类型如链接表的时候:

a. 不要使用全局数据(使用成员)。

b. 不要使用全局函数。

c. 不要使用公用数据成员。

d. 不要使用友元,除非为了避免a或c。

e. 不要在一个类里面放“类型域”(指那种为了说明一个类所存储数据的情况而放置的标志域) ;采用虚函数。

f. 不要使用在线函数(inline function),除非作为效果显著的优化。

第 2 章 C++ 概览

1. 不用害怕,一切都会随着时间的推移而逐渐明朗起来。

2. 你并不需要在知道了C++的所有细节之后才能写出好的C++程序。

3. 请特别关注程序设计技术,而不是各种语言特征。

第 3 章 标准库概览

1. 不要像重新发明车轮那样企图做每件事;去使用库。

2. 不要相信奇迹;要理解你的库能做什么,它们如何做,它们做时需要多大的代价。

3. 当你遇到一个选择时,应该优先选择标准库而不是其他的库。

4. 不要认为标准库对于任何事情都是最理想的。

5. 切记#include 你所用到的功能的头文件。

6. 记住,标准库的功能定义在名字空间std之中。

7. 请用string,而不是char*。

8. 如果怀疑,就用一个检查区间范围的向量(例如Vec)。

9. vector<T> 、list<T>和 map<key,value> 都比T[] 好。

10. 如果向一个容器中添加一个元素,用push_back() 或 back_inserter()。

11. 采用对vector的push_back(),而不是对数组的realloc()。

12. 在main()中捕捉公共的异常。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航