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

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

 

第1章               致读者

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

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

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

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

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

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

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

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

 

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

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

b.       不要使用全局函数。

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

d.       不要使用友元,除非为了避免ac

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.          采用对vectorpush_back(),而不是对数组的realloc()

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值