C++入門經典

C++入門經典

《C++入門經典》是2011年人民郵電出版社出版的圖書,作者是立波提、卡登海德。

基本信息

內容簡介

通過大量短小精悍的程式詳細闡述了基本的C++編程概念,包括C++程式的組成部分、變數、常量、表達式、語句、運算符、函式、循環、數組、指針、引用、函式和運算符重載、繼承、C++0x新增功能、面向對象分析和設計、模板、錯誤和異常處理等主題。每章都提供了示例程式清單,並輔以示例輸出和代碼分析,以闡述該章介紹的主題。為加深讀者對所學內容的理解,每章末尾都提供了常見問題及其答案以及練習和測驗。

這是針對C++初學者編寫的,不要求讀者有C語言方面的背景知識,既可作為高等院校教授C++課程的教材,也可供初學者自學C++時使用。

作者簡介

作者:(美國)立波提 (Jesse Liberty) (美國)卡登海德 (Rogers Cadenhead) 譯者:袁國忠 朱正平

圖書目錄

第一部分 C++入門

第1章 編寫第一個程式 2

1.1 使用C++ 2

1.2 尋找編譯器 3

1.3 編譯和連結原始碼 5

1.4 創建您的第一個程式 5

1.5 總結 6

1.6 問與答 7

1.7 作業 7

1.7.1 測驗 7

1.7.2 答案 8

1.7.3 練習 8

第2章 程式的組成部分 9

2.1 使用C++的原因 9

2.1.1 編程風格 10

2.1.2 C++和面向對象編程 11

2.2 程式的組成部分 12

2.2.1 預處理器編譯指令 12

2.2.2 原始碼行 13

2.3 注釋 13

2.4 函式 14

2.5 總結 16

2.6 問與答 16

2.7 作業 17

2.7.1 測驗 17

2.7.2 答案 18

2.7.3 練習 18

第3章 創建變數和常量 19

3.1 變數是什麼 19

3.1.1 在記憶體中存儲變數 20

3.1.2 無符號變數和帶符號變數 21

3.1.3 變數類型 21

3.2 定義變數 22

3.3 給變數賦值 23

3.4 使用類型定義 24

3.5 常量 25

3.5.1 定義常量 26

3.5.2 枚舉常量 26

3.6 總結 26

3.7 問與答 27

3.8 作業 27

3.8.1 測驗 27

3.8.2 答案 28

3.8.3 練習 28

第4章 使用表達式、語句和運算符 29

4.1 語句 29

4.1.1 空白 29

4.1.2 複合語句 30

4.2 表達式 30

4.3 運算符 31

4.3.1 賦值運算符 31

4.3.2 數學運算符 31

4.3.3 組合運算符 32

4.3.4 遞增和遞減運算符 32

4.3.5 前綴運算符和後綴運算符 32

4.3.6 運算符優先權 34

4.3.7 關係運算符 36

4.4 if-else條件語句 36

4.4.1 else子句 37

4.4.2 複合if語句 37

4.5 邏輯運算符 39

4.5.1 與運算符 39

4.5.2 或運算符 39

4.5.3 非運算符 39

4.5.4 關係運算符和邏輯運算符的優先權 40

4.6 棘手的表達式值 40

4.7 總結 40

4.8 問與答 41

4.9 作業 41

4.9.1 測驗 41

4.9.2 答案 42

4.9.3 練習 42

第5章 調用函式 43

5.1 函式是什麼 43

5.2 聲明和定義函式 43

5.3 在函式中使用變數 45

5.3.1 局部變數 45

5.3.2 全局變數 46

5.4 函式參數 47

5.5 從函式返回值 48

5.6 默認函式參數 50

5.7 函式重載 51

5.8 總結 52

5.9 問與答 53

5.10 作業 53

5.10.1 測驗 53

5.10.2 答案 54

5.10.3 練習 54

第6章 控制程式流程 55

6.1 循環 55

6.2 while循環 55

6.2.1 退出循環 56

6.2.2 跳到下一次循環 57

6.3 do-while循環 58

6.4 for循環 59

6.4.1 高級for循環 61

6.4.2 嵌套循環 61

6.5 switch語句 62

6.6 總結 64

6.7 問與答 64

6.8 作業 65

6.8.1 測驗 65

6.8.2 答案 65

6.8.3 練習 66

第7章 使用數組和字元串存儲信息 67

7.1 數組是什麼 67

7.2 寫入時超過數組末尾 69

7.3 初始化數組 69

7.4 多維數組 70

7.4.1 初始化多維數組 71

7.4.2 記憶體簡介 72

7.5 字元數組 72

7.6 複製字元串 74

7.7 總結 75

7.8 問與答 75

7.9 作業 75

7.9.1 測驗 75

7.9.2 答案 76

7.9.3 練習 76

第二部分 類

第8章 創建基本類 78

8.1 類型是什麼 78

8.2 創建新類型 78

8.3 類和成員 79

8.3.1 聲明類 79

8.3.2 創建對象 80

8.4 訪問類成員 80

8.5 實現成員函式 81

8.6 創建和刪除對象 83

8.6.1 默認構造函式 84

8.6.2 編譯器提供的構造函式 84

8.7 總結 86

8.8 問與答 87

8.9 作業 87

8.9.1 測驗 87

8.9.2 答案 87

8.9.3 練習 88

第9章 高級類 89

9.1 const成員函式 89

9.2 接口和實現 90

9.3 組織類聲明和函式定義 90

9.4 內聯實現 90

9.5 將其他類用作成員數據的類 92

9.6 總結 96

9.7 問與答 96

9.8 作業 96

9.8.1 測驗 96

9.8.2 答案 97

9.8.3 練習 97

第三部分 記憶體管理

第10章 創建指針 100

10.1 理解指針及其用途 100

10.1.1 在指針中存儲地址 102

10.1.2 間接運算符(間接地使用指針) 103

10.1.3 指針、地址和變數 104

10.1.4 使用指針運算元據 105

10.1.5 查看存儲在指針中的地址 105

10.1.6 為何使用指針 107

10.2 棧和堆 107

10.2.1 使用關鍵字new 108

10.2.2 使用關鍵字delete 109

10.2.3 避免記憶體泄露 110

10.3 總結 111

10.4 問與答 111

10.5 作業 111

10.5.1 測驗 111

10.5.2 答案 112

10.5.3 練習 112

第11章 開發高級指針 113

11.1 在堆中創建對象 113

11.2 刪除對象 113

11.3 使用指針訪問數據成員 114

11.4 堆中的數據成員 115

11.5 this指針 117

11.6 懸擺指針 118

11.7 const指針 118

11.8 const指針和const成員函式 119

11.9 總結 120

11.10 問與答 121

11.11 作業 121

11.11.1 測驗 121

11.11.2 答案 121

11.11.3 練習 122

第12章 創建引用 123

12.1 什麼是引用 123

12.2 創建引用 123

12.3 將地址運算符用於引用 124

12.4 可引用的目標 126

12.5 空指針和空引用 127

12.6 按引用傳遞函式參數 127

12.6.1 使用指針實現swap() 128

12.6.2 使用引用實現swap() 129

12.7 理解函式頭和原型 130

12.8 返回多個值 130

12.9 總結 133

12.10 問與答 133

12.11 作業 133

12.11.1 測驗 133

12.11.2 答案 134

12.11.3 練習 134

第13章 高級引用和指針 135

13.1 按引用傳遞以提高效率 135

13.2 傳遞const指針 137

13.3 作為指針替代品的引用 139

13.4 什麼情況下使用引用以及什麼情況下使用指針 141

13.5 不要返回不在作用域內的引用 141

13.6 返回指向堆中對象的引用 142

13.7 誰擁有指針 143

13.8 總結 144

13.9 問與答 144

13.10 作業 144

13.10.1 測驗 144

13.10.2 答案 145

13.10.3 練習 145

第四部分 高級C++

第14章 高級函式 148

14.1 重載成員函式 148

14.2 使用默認值 150

14.3 初始化對象 151

14.4 複製構造函式 152

14.5 總結 155

14.6 問與答 155

14.7 作業 155

14.7.1 測驗 156

14.7.2 答案 156

14.7.3 練習 156

第15章 運算符重載 157

15.1 重載運算符 157

15.1.1 編寫遞增方法 158

15.1.2 重載後綴運算符 160

15.1.3 重載加法運算符 161

15.1.4 對運算符重載的限制 162

15.1.5 賦值運算符 163

15.2 轉換運算符 165

15.3 總結 167

15.4 問與答 168

15.5 作業 168

15.5.1 測驗 168

15.5.2 答案 168

15.5.3 練習 169

第五部分 繼承和多態

第16章 使用繼承擴展類 172

16.1 什麼是繼承 172

16.1.1 繼承和派生 173

16.1.2 動物和繼承 173

16.1.3 派生語法 173

16.2 私有和保護 175

16.3 構造函式和析構函式 176

16.4 將參數傳遞給基類構造函式 178

16.5 重寫函式 181

16.5.1 重載和重寫 183

16.5.2 隱藏基類方法 183

16.5.3 調用基類方法 184

16.6 總結 185

16.7 問與答 185

16.8 作業 185

16.8.1 測驗 186

16.8.2 答案 186

16.8.3 練習 186

第17章 使用多態和派生類 187

17.1 使用虛函式實現多態 187

17.2 虛成員函式的工作原理 190

17.2.1 不能通過基類指針訪問派生類特有的方法 191

17.2.2 切除 191

17.2.3 虛析構函式 193

17.2.4 虛複製構造函式 193

17.2.5 使用虛成員函式的代價 196

17.3 總結 196

17.4 問與答 196

17.5 作業 196

17.5.1 測驗 196

17.5.2 答案 197

17.5.3 練習 197

第18章 使用高級多態 198

18.1 單繼承存在的問題 198

18.2 抽象數據類型 201

18.2.1 純虛函式 203

18.2.2 實現純虛函式 204

18.2.3 複雜的抽象層次結構 206

18.2.4 哪些類是抽象的 209

18.3 總結 210

18.4 問與答 210

18.5 作業 210

18.5.1 測驗 210

18.5.2 答案 211

18.5.3 練習 211

第19章 使用鍊表存儲信息 212

19.1 鍊表和其他結構 212

19.2 鍊表案例研究 213

19.2.1 委託 213

19.2.2 鍊表的組成部分 213

19.3 作為對象的鍊表 219

19.4 總結 220

19.5 問與答 220

19.6 作業 220

19.6.1 測驗 221

19.6.2 答案 221

19.6.3 練習 221

第六部分 特殊主題

第20章 使用特殊的類、函式和指針 224

20.1 靜態成員數據 224

20.2 靜態成員函式 226

20.3 將其他類對象作為成員 227

20.3.1 訪問被包含類的成員 231

20.3.2 禁止訪問包含類的成員 232

20.3.3 按引用還是按值複製 232

20.4 友元類和友元函式 232

20.5 函式指針 233

20.5.1 函式指針數組 235

20.5.2 將函式指針傳遞給其他函式 237

20.5.3 將typedef用於函式指針 239

20.5.4 成員函式指針 239

20.5.5 成員函式指針數組 241

20.6 總結 242

20.7 問與答 243

20.8 作業 243

20.8.1 問與答 243

20.8.2 答案 244

20.8.3 練習 244

第21章 使用C++0x新增的功能 245

21.1 下一版C++ 245

21.2 空指針常量 245

21.3 編譯階段常量表達式 247

21.4 自動確定類型的變數 248

21.5 新的for循環 250

21.6 總結 250

21.7 問與答 251

21.8 作業 251

21.8.1 測驗 251

21.8.2 答案 252

21.8.3 練習 252

第22章 面向對象分析和設計 253

22.1 開發周期 253

22.2 模擬報警系統 253

22.2.1 概念化 254

22.2.2 分析和需求 254

22.2.3 高級設計和詳細設計 254

22.2.4 其他對象 255

22.2.5 設計類 255

22.2.6 添加其他類 256

22.2.7 事件循環 256

22.3 案例研究 258

22.3.1 三思而後行 259

22.3.2 分而治之 259

22.3.3 郵件格式 259

22.3.4 初步類設計 260

22.3.5 同根和不同根 261

22.3.6 設計接口 262

22.3.7 建立原型 263

22.3.8 80/80規則 263

22.3.9 設計PostMasterMessage類 264

22.3.10 應用程式編程接口 264

22.3.11 小組編程 265

22.3.12 需要不斷考慮的設計因素 265

22.3.13 使用驅動程式 266

22.4 總結 271

22.5 問與答 271

22.6 作業 272

22.6.1 測驗 272

22.6.2 答案 272

22.6.3 練習 272

第23章 創建模板 273

23.1 什麼是模板 273

23.2 模板實例 273

23.3 模板的定義 274

23.4 使用模板實例 279

23.5 總結 283

23.6 問與答 284

23.7 作業 284

23.7.1 測驗 284

23.7.2 答案 284

23.7.3 練習 285

第24章 處理異常和錯誤 286

24.1 程式中的各種錯誤 286

24.2 處理意外情況 287

24.3 異常 287

24.4 使用try塊和catch塊 290

24.4.1 捕獲異常 291

24.4.2 使用多條catch語句 291

24.4.3 使用引用以多態方式捕獲異常 291

24.5 編寫專業級代碼 295

24.5.1 大括弧 295

24.5.2 長代碼行 295

24.5.3 switch語句 296

24.5.4 程式文本 296

24.5.5 標識符命名 297

24.5.6 名稱的拼寫和大寫 297

24.5.7 注釋 297

24.5.8 設定訪問許可權 298

24.5.9 類定義 298

24.5.10 包含檔案 298

24.5.11 使用const 298

24.6 總結 299

24.7 問與答 299

24.8 作業 299

24.8.1 測驗 299

24.8.2 答案 300

24.8.3 練習 300

第七部分 附錄

附錄A 二進制和十六進制 302

A.1 其他進制 302

A.2 不同進制之間的轉換 303

A.2.1 二進制 304

A.2.2 為什麼使用二進制 304

A.2.3 位、位元組和半位元組 304

A.2.4 什麼是KB 305

A.2.5 二進制數 305

A.3 十六進制 305

附錄B 術語表 308

附錄C 配套網站 314

相關詞條

相關搜尋

熱門詞條

聯絡我們