高品質程式設計指南:C++/C語言

來源:互聯網
上載者:User

《高品質程式設計指南:C++/C語言》
基本資料
作者: 林銳 韓永泉 [作譯者介紹]
出版社:電子工業出版社
ISBN:9787121186172
上架時間:2012-10-24
出版日期:2012 年10月
開本:16開
頁碼:412
版次:1-1
所屬分類: 電腦 > 軟體與程式設計 > C/Turbo C > C
電腦 > 軟體與程式設計 > C++ > C++

更多關於 》》》《高品質程式設計指南:C++/C語言》
內容簡介
書籍
電腦書籍
  高品質程式設計是軟體行業的薄弱環節,大部分企業為此付出了高昂的代價,只能通過大量的測試和改錯來提高軟體產品的品質。因此,如何讓程式員熟練地掌握編程技術和編程規範,在開發過程中內建高品質代碼,是it企業面臨的主要挑戰之一。
  《高品質程式設計指南:c++/c語言》以輕鬆幽默的筆調向讀者論述了高品質軟體開發方法與c++/c編程規範,而這也是作者多年從事軟體開發工作的經驗總結。全書共17章,第1章到第4章重點介紹軟體品質和基本的程式設計方法;第5章到第16章重點闡述c++/c編程風格、物件導向程式設計方法和一些技術專題;第17章闡述stl的原理和使用方法。
  《高品質程式設計指南:c++/c語言》第1版和第2版部分章節曾經在網上廣泛流傳,被國內it企業的不少軟體開發人員採用。本書的附錄c《大學十年》是作者在網上發表的一個短篇傳記,文中所描述的充滿激情的學習和生活態度,感染了大批莘莘學子。
  《高品質程式設計指南:c++/c語言》的主要讀者對象是it企業的程式員和專案經理,以及大專院校的本科生和研究生。
目錄
《高品質程式設計指南:c++/c語言》
第1章 高品質軟體開發之道 1
1.1 軟體品質基本概念 1
1.1.1 如何理解軟體的品質 1
1.1.2 提高軟體品質的基本方法 2
1.1.3 “零缺陷”理念 4
1.2 細說軟體品質屬性 4
1.2.1 正確性 4
1.2.2 健壯性 4
1.2.3 可靠性 5
1.2.4 效能 6
1.2.5 易用性 6
1.2.6 清晰性 7
1.2.7 安全性 7
1.2.8 可擴充性 8
1.2.9 相容性 8
1.2.10 可移植性 8
1.3 人們關注的不僅僅是品質 9
1.3.1 品質、生產率和成本之間的關係 9
1.3.2 軟體流程改善的基本概念 10
1.4 高品質軟體開發的基本方法 13
1.4.1 建立軟體過程規範 13
1.4.2 複用 15
1.4.3 分而治之 16
1.4.4 最佳化與折中 17
1.4.5 技術評審 17
1.4.6 測試 19
1.4.7 品質保證 21
1.4.8 改錯 22
1.5 關於軟體開發的一些常識和思考 23
1.5.1 有最好的程式設計語言嗎 23
1.5.2 編程是一門藝術嗎 23
1.5.3 編程時應該多提示嗎 24
1.5.4 換更快的電腦還是換更快的演算法 24
1.5.5 錯誤是否應該分等級 24
1.5.6 一些錯誤的觀念 25
1.6 小結 25
第2章 程式設計語言發展簡史 27
2.1 程式設計語言大事記 27
2.2 ada的故事 31
2.3 c/c++發展簡史 31
2.4 borland與microsoft之爭 32
2.5 java陣營與microsoft的較量 33
2.6 小結 36
第3章 程式的基本概念 37
3.1 程式設計語言 37
3.2 語言實現 38
3.3 程式庫 40
3.4 開發環境 40
3.5 程式的工作原理 41
3.6 良好的編程習慣 42
第4章 c++/c程式設計入門 45
4.1 c++/c程式的基本概念 45
4.1.1 啟動函數main() 45
4.1.2 命令列參數 47
4.1.3 內部名稱 48
4.1.4 串連規範 49
4.1.5 變數及其初始化 51
4.1.6 c runtime library 52
4.1.7 編譯時間和運行時的不同 52
4.1.8 編譯單元和獨立編譯技術 54
4.2 基礎資料型別 (Elementary Data Type)和記憶體映像 54
4.3 類型轉換 56
4.3.1 隱式轉換 56
4.3.2 強制轉換 58
4.4 標識符 60
4.5 逸出序列 61
4.6 運算子 62
4.7 運算式 63
4.8 基本控制結構 65
4.9 選擇(判斷)結構 65
4.9.1 布爾變數與零值比較 66
4.9.2 整型變數與零值比較 67
4.9.3 浮點變數與零值比較 67
4.9.4 指標變數與零值比較 69
4.9.5 對if語句的補充說明 69
4.9.6 switch結構 70
4.10 迴圈(重複)結構 71
4.10.1 for語句的迴圈控制變數 72
4.10.2 迴圈語句的效率 73
4.11 結構化程式設計原理 78
4.12 goto/continue/break語句 79
4.13 樣本 79
第5章 c++/c常量 85
5.1 認識常量 85
5.1.1 字面常量 85
5.1.2 符號常量 86
5.1.3 契約性常量 87
5.1.4 枚舉常量 87
5.2 正確定義符號常量 87
5.3 const與#define的比較 88
5.4 類中的常量 89
5.5 實際應用中如何定義常量 90
第6章 c++/c函數設計基礎 95
6.1 認識函數 95
6.2 函數原型和定義 96
6.3 函數調用方式 97
6.4 認識函數堆棧 99
6.5 函數調用規範 100
6.6 函數串連規範 101
6.7 參數路由規則 102
6.8 傳回值的規則 104
6.9 函數內部實現的規則 107
6.10 儲存類型及範圍規則 109
6.10.1 儲存類型 109
6.10.2 範圍規則 110
6.10.3 連線類型 111
6.11 遞迴函式 113
6.12 使用斷言 116
6.13 使用const提高函數的健壯性 118
6.13.1 用const修飾函數的參數 118
6.13.2 用const修飾函數的傳回值 119
第7章 c++/c指標、數組和字串 121
7.1 指標 121
7.1.1 指標的本質 121
7.1.2 指標的類型及其支援的運算 123
7.1.3 指標傳遞 125
7.2 數組 126
7.2.1 數組的本質 126
7.2.2 二維數組 128
7.2.3 數組傳遞 129
7.2.4 動態建立、初始化和刪除數組的方法 131
7.3 字元數組、字元指標和字串 133
7.3.1 字元數組、字串和'\0'的關係 133
7.3.2 字元指標的誤區 134
7.3.3 字串拷貝和比較 134
7.4 函數指標 134
7.5 引用和指標的比較 137
第8章 c++/c進階資料類型 141
8.1 結構(struct) 141
8.1.1 關鍵字struct與class的困惑 141
8.1.2 使用struct 142
8.1.3 位域 145
8.1.4 成員對齊 147
8.2 聯合(union) 159
8.3 枚舉(enum) 161
8.4 檔案 162
第9章 c++/c編譯預先處理 165
9.1 檔案包含 165
9.1.1 內部包含衛哨和外部包含衛哨 165
9.1.2 標頭檔包含的合理順序 166
9.2 宏定義 166
9.3 條件編譯 169
9.3.1 #if、#elif和#else 169
9.3.2 #ifdef 和 #ifndef 170
9.4 #error 170
9.5 #pragma 171
9.6 #和##運算子 171
9.7 預定義符號常量 172
第10章 c++/c檔案結構和程式版式 173
10.1 程式檔案的目錄結構 173
10.2 檔案的結構 174
10.2.1 標頭檔的用途和結構 174
10.2.2 著作權和版本資訊 175
10.2.3 源檔案結構 176
10.3 代碼的版式 176
10.3.1 適當的空行 176
10.3.2 程式碼及行內空格 177
10.3.3 長行拆分 178
10.3.4 對齊與縮排 179
10.3.5 修飾符的位置 180
10.3.6 注釋風格 180
10.3.7 adt/udt版式 181
第11章 c++/c應用程式命名規則 183
11.1 共性規則 183
11.2 簡單的windows應用程式命名 184
第12章 c++物件導向程式設計方法概述 187
12.1 漫談物件導向 187
12.2 對象的概念 188
12.3 資訊隱藏與類的封裝 189
12.4 類的繼承特性 193
12.5 類的組合特性 199
12.6 動態特性 200
12.6.1 虛函數 200
12.6.2 抽象基類 201
12.6.3 動態綁定 203
12.6.4 運行時多態 206
12.6.5 多態數組 207
12.7 c++物件模型 214
12.7.1 對象的記憶體映像 214
12.7.2 隱含成員 224
12.7.3 c++編譯器如何處理成員函數 225
12.7.4 c++編譯器如何處理靜態成員 225
12.8 小結 226
第13章 對象的初始化、拷貝和析構 229
13.1 建構函式與解構函式的起源 229
13.2 為什麼需要建構函式和解構函式 230
13.3 建構函式的成員初始化列表 232
13.4 對象的構造和析構次序 234
13.5 建構函式和解構函式的調用時機 235
13.6 建構函式和賦值函數的重載 236
13.7 樣本:類string的建構函式和解構函式 238
13.8 何時應該定義拷貝建構函式和拷貝賦值函數 239
13.9 樣本:類string的拷貝建構函式和拷貝賦值函數 240
13.10 用偷懶的辦法處理拷貝建構函式和 拷貝賦值函數 242
13.11 如何?衍生類別的基本函數 243
第14章 c++函數的進階特性 247
14.1 函數重載的概念 247
14.1.1 重載的起源 247
14.1.2 重載是如何?的 247
14.1.3 小心隱式類型轉換導致重載函數產生二義性 249
14.2 成員函數的重載、覆蓋與隱藏 250
14.2.1 重載與覆蓋 250
14.2.2 令人迷惑的隱藏規則 251
14.2.3 擺脫隱藏 253
14.3 參數的預設值 254
14.4 運算子多載 255
14.4.1 基本概念 255
14.4.2 運算子多載的特殊性 256
14.4.3 不能重載的運算子 257
14.4.4 重載++和-- 257
14.5 函數內聯 259
14.5.1 用函數內聯取代宏 259
14.5.2 內嵌函式的編程風格 260
14.5.3 慎用內聯 261
14.6 類型轉換函式 261
14.7 const成員函數 264
第15章 c++異常處理和rtti 267
15.1 為什麼要使用異常處理 267
15.2 c++異常處理 268
15.2.1 異常處理的原理 268
15.2.2 異常類型和異常對象 269
15.2.3 異常處理的文法結構 270
15.2.4 異常的類型匹配規則 272
15.2.5 異常說明及其衝突 272
15.2.6 當異常拋出時局部對象如何釋放 273
15.2.7 物件建構和析構期間的異常 273
15.2.8 如何使用好異常處理技術 275
15.2.9 c++的標準異常 278
15.3 虛函數面臨的難題 278
15.4 rtti及其構成 280
15.4.1 起源 280
15.4.2 typeid運算子 281
15.4.3 dynamic_cast[]運算子 283
15.4.4 rtti的魅力與代價 285
第16章 記憶體管理 287
16.1 記憶體配置方式 287
16.2 常見的記憶體錯誤及其對策 288
16.3 指標參數是如何傳遞記憶體的 289
16.4 free和delete把指標怎麼啦 291
16.5 動態記憶體會被自動釋放嗎 292
16.6 杜絕“野指標” 292
16.7 有了malloc/free為什麼還要new/delete 293
16.8 malloc/free的使用要點 295
16.9 new有3種使用方式 296
16.9.1 plain new/delete 296
16.9.2 nothrow new/delete 297
16.9.3 placement new/delete 297
16.10 new/delete的使用要點 300
16.11 記憶體耗盡怎麼辦 301
16.12 用對象類比指標 302
16.13 泛型指標auto_ptr 305
16.14 帶有引用計數的智能指標 306
16.15 智能指標作為容器元素 312
第17章 學習和使用stl 323
17.1 stl簡介 323
17.2 stl標頭檔的分布 324
17.2.1 容器類 324
17.2.2 泛型演算法 325
17.2.3 迭代器 325
17.2.4 數學運算庫 325
17.2.5 通用工具 325
17.2.6 其他標頭檔 326
17.3 容器設計原理 326
17.3.1 記憶體映像 326
17.3.2 儲存方式和訪問方式 327
17.3.3 順序容器和關聯式容器的比較 328
17.3.4 如何遍曆容器 331
17.3.5 儲存空間重分配問題 332
17.3.6 什麼樣的對象才能作為stl容器的元素 333
17.4 迭代器 334
17.4.1 迭代器的本質 334
17.4.2 迭代器失效及其危險性 337
17.4.3 如何在遍曆容器的過程中正確刪除元素 346
17.5 儲存分配器 347
17.6 適配器 349
17.7 泛型演算法 352
17.8 一些特殊的容器 355
17.8.1 string類 356
17.8.2 bitset並非set 356
17.8.3 節省儲存空間的vector[bool] 358
17.8.4 空容器 360
17.9 stl容器特徵總結 361
17.10 stl使用心得 364
附錄a c++/c試題 367
附錄b c++/c試題答案與評分標準 371
附錄c 大學十年 377
附錄d 《大學十年》後記 395
附錄e 術語與縮寫解釋 397

本圖書資訊來源:中國互動出版網

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.