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

amyz發表於2007-10-17
Bjarne Stroustrup(BS)博士在 The C++ Programming Language(Special Edition)中對讀者的忠告1(摘抄) (轉)[@more@]

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

 :namespace prefix = o ns = "urn:schemas--com::office" />

第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 、list和 map 都比T[] 好。

10.  如果向一個容器中新增一個元素,用push_back() 或 back_inserter()。

11.  採用對vector的push_back(),而不是對陣列的realloc()。

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

 

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-977165/,如需轉載,請註明出處,否則將追究法律責任。

相關文章