適合C++入門初學者,如何編寫出高質量、高效率、漂亮的C代碼。軟件質量是被大多數(shù)程序員掛在嘴上而不是放在心上的東西!
除了完全外行和真正的編程高手外,初讀本書,你最先的感受將是驚慌:“哇!我以前捏造的C++/C程序怎么會有那么多的毛病?”
別難過,作者只不過比你早幾年、多幾次驚慌而已。
請花一兩個小時認真閱讀這本百頁經(jīng)書,你將會獲益匪淺,這是前面N-1個讀者的建議。
編程老手與高手的誤區(qū)
自從計算機問世以來,程序設計就成了令人羨慕的職業(yè),程序員在受人寵愛之后容易發(fā)展成為毛病特多卻常能自我臭美的群體。
如今在Internet上流傳的“真正”的程序員據(jù)說是這樣的:
(1) (1) 真正的程序員沒有進度表,只有討好領導的馬屁精才有進度表,真正的程序員會讓領導提心吊膽。
(2) (2) 真正的程序員不寫使用說明書,用戶應當自己去猜想程序的功能。
(3) (3) 真正的程序員幾乎不寫代碼的注釋,如果注釋很難寫,它理所當然也很難讀。
(4) (4) 真正的程序員不畫流程圖,原始人和文盲才會干這事。
(5) (5) 真正的程序員不看參考手冊,新手和膽小鬼才會看。
(6) (6) 真正的程序員不寫文檔也不需要文檔,只有看不懂程序的笨蛋才用文檔。
(7) (7) 真正的程序員認為自己比用戶更明白用戶需要什么。
(8) (8) 真正的程序員不接受團隊開發(fā)的理念,除非他自己是頭頭。
(9) (9) 真正的程序員的程序不會在第一次就正確運行,但是他們愿意守著機器進行若干個30小時的調試改錯。
(10) (10)真正的程序員不會在上午9:00到下午5:00之間工作,如果你看到他在上午9:00工作,這表明他從昨晚一直干到現(xiàn)在。
……
具備上述特征越多,越顯得水平高,資格老。所以別奇怪,程序員的很多缺點竟然可以被當作優(yōu)點來欣賞。就象在武俠小說中,那些獨來獨往、不受約束且?guī)c邪氣的高手最令人崇拜。我曾經(jīng)也這樣信奉,并且希望自己成為那樣的“真正”的程序員,結果沒有得到好下場。
目錄
前言
第1章文件結構
1.1 版權和版本的聲明
1.2 頭文件的結構
1.3 定義文件的結構
1.4 頭文件的作用
1.5 目錄結構
第2章程序的版式
2.1 空行
2.2 代碼行
2.3 代碼行內的空格
2.4 對齊
2.5 長行拆分
2.6 修飾符的位置
2.7 注釋
2.8 類的版式
第3章命名規(guī)則
3.1 共性規(guī)則
3.2 簡單的WINDOWS應用程序命名規(guī)則
3.3 簡單的UNIX應用程序命名規(guī)則
第4章表達式和基本語句
4.1 運算符的優(yōu)先級
4.2 復合表達式
4.3 IF 語句
4.4 循環(huán)語句的效率
4.5 FOR 語句的循環(huán)控制變量
4.6 SWITCH語句
4.7 GOTO語句
第5章常量
5.1 為什么需要常量
5.2 CONST 與 #DEFINE的比較
5.3 常量定義規(guī)則
5.4 類中的常量
第6章函數(shù)設計
6.1 參數(shù)的規(guī)則
6.2 返回值的規(guī)則
6.3 函數(shù)內部實現(xiàn)的規(guī)則
6.4 其它建議
6.5 使用斷言
6.6 引用與指針的比較
第7章內存管理
7.1內存分配方式
7.2常見的內存錯誤及其對策
7.3指針與數(shù)組的對比
7.4指針參數(shù)是如何傳遞內存的?
7.5 FREE和DELETE把指針怎么啦?
7.6 動態(tài)內存會被自動釋放嗎?
7.7 杜絕“野指針”
7.8 有了MALLOC/FREE為什么還要NEW/DELETE ?
7.9 內存耗盡怎么辦?
7.10 MALLOC/FREE 的使用要點
7.11 NEW/DELETE 的使用要點
7.12 一些心得體會
第8章 C++函數(shù)的高級特性
8.1 函數(shù)重載的概念
8.2 成員函數(shù)的重載、覆蓋與隱藏
8.3 參數(shù)的缺省值
8.4 運算符重載
8.5 函數(shù)內聯(lián)
8.6 一些心得體會
第9章類的構造函數(shù)、析構函數(shù)與賦值函數(shù)
9.1 構造函數(shù)與析構函數(shù)的起源
9.2 構造函數(shù)的初始化表
9.3 構造和析構的次序
9.4 示例:類STRING的構造函數(shù)與析構函數(shù)
9.5 不要輕視拷貝構造函數(shù)與賦值函數(shù)
9.6 示例:類STRING的拷貝構造函數(shù)與賦值函數(shù)
9.7 偷懶的辦法處理拷貝構造函數(shù)與賦值函數(shù)
9.8 如何在派生類中實現(xiàn)類的基本函數(shù)
9.9 一些心得體會
第10章類的繼承與組合
10.1 繼承
10.2 組合
第11章其它編程經(jīng)驗
11.1 使用CONST提高函數(shù)的健壯性
11.2 提高程序的效率
11.3 一些有益的建議
參考文獻
附錄A :C++/C代碼審查表
附錄B :C++/C試題
附錄C :C++/C試題的答案與評分標準