Bjarne Stroustrup(BS)博士在 The C++ Programming Language(Special Edition)中對讀者的忠告1(摘抄) (轉)
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
10. 如果向一個容器中新增一個元素,用push_back() 或 back_inserter()。
11. 採用對vector的push_back(),而不是對陣列的realloc()。
12. 在main()中捕捉公共的異常。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-977165/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Bjarne Stroustrup(BS)博士在 The C++ Programming Language(Special Edition)中對讀者的忠告2(摘抄) (轉)JARC++
- The C++ Programming Language, 4th Edition出版了C++
- Bjarne Stroustrup:概觀C++程式設計語言 (轉)JARC++程式設計
- Bjarne Stroustrup 語錄JAR
- Bjarne Stroustrup的 C++ 風格與技術常見問題與答案(轉)JARC++
- Bjarne Stroustrup的 C++ 風格與技術常見問題與答案 (節譯一) (轉)JARC++
- 掀起C++0x的蓋頭來:C++之父Bjarne Stroustrup訪談C++JAR
- C++之父Bjarne談C++在2005年(轉)C++JAR
- C++之父Bjarne Stroustrup訪談問題有獎徵集(圖靈訪談)C++JAR圖靈
- 思考c++程式設計-譯自c++ programming language 1.7節 (轉)C++程式設計
- C++之父Bjarne Stroustrup: 簡單的表述方式才是最優的方案(圖靈訪談)C++JAR圖靈
- RBE104TC C/C++ Programming LanguageC++
- 【讀書筆記】The Swift Programming Language (Swift 4.0.3)筆記Swift
- The Go Programming LanguageGo
- the java programming languageJava
- C++之父B. Stroustrup近期言論 (轉)C++
- 《The Rust Programming language》程式碼練習(part 1 基礎部分)Rust
- 死磕The Swift Programming Language——學Swift
- golang programming language study methods websocketGolangWeb
- The Swift Programming Language 中文版Swift
- 《軟體工程思想》讀書摘抄 Part 1軟體工程
- 想入門者請近.[翻譯]what programming language should I learn?
- Programming Java 2 Micro Edition for Symbian OSJava
- Java Language Features, 2nd Edition.pdfJava
- Bjarne Stroustrup: A simple way of expressing an idea can be optimal in real-world situations(圖靈訪談)JARExpressIdea圖靈
- Advanced Programming in the UNIX Environment, 3rd Edition出版
- c++初學者的50個忠告C++
- 對Java初學者的忠告Java
- File Protector 2000 v2.02 Special Edition documentation (7千字)
- 1901:The C programming language !(C語言)C語言
- 《The Swift Programming Language》中文版翻譯完成Swift
- 2016/08/24 CppCon 2015 Bjarne Stroustrup “Writing Good C++14"JARGoC++
- 給C++初學者的50個忠告C++
- 對Win XP系統的超級管理員安全忠告(轉)
- The Overview of ECMA C# Language Specialisation (1) (轉)ViewC#
- 【Programming in Lua1-7章】讀書筆記筆記
- 介面在託管C++中的應用 (轉)C++
- C++中對檔案進行讀寫操作C++