C++從零開始學(視頻教學版)(第2版)

王英英

  • 出版商: 清華大學
  • 出版日期: 2020-02-01
  • 定價: $474
  • 售價: 7.9$374
  • 語言: 簡體中文
  • ISBN: 7302544565
  • ISBN-13: 9787302544562
  • 相關分類: C++ 程式語言
  • 立即出貨

  • C++從零開始學(視頻教學版)(第2版)-preview-1
  • C++從零開始學(視頻教學版)(第2版)-preview-2
  • C++從零開始學(視頻教學版)(第2版)-preview-3
C++從零開始學(視頻教學版)(第2版)-preview-1

買這商品的人也買了...

相關主題

商品描述

本書面向C++編程初學者和廣大C++編程愛好者。本書循序漸進地介紹C++應用與開發的相關基礎知識,提供大量具體操作C++編程的實例供讀者實踐。每節都清晰地闡述代碼如何工作及其作用,使讀者能在最短的時間內有效地掌握C++編程。本書配有源碼、課件與教學視頻。 全書共20章,分別介紹:為什麽要學習C++、C++程序結構、基本數據類型和數據處理、運算符與表達式、程序流程控制、函數、數組與字符串、指針、struct與其他復合數據類型、類的使用方法、對象的初始化和清除、運算符的重載、類的繼承、虛函數和抽象類、C++中的文件處理、異常處理和C++的高級概念等知識。在每章的後面提供自我評估的習題供讀者操作練習,從而加深理解。 本書適合C++初學者自學使用,也適合作為高等院校和培訓學校電腦相關專業師生的教學參考書。

作者簡介

王英英,從事多年網站開發和應用程序開發,精通多種編程語言。對Python有深入研究,在Python編程開發方面有著豐富的經驗,並已出版過多本相關暢銷書,受廣大讀者認可。

目錄大綱

 

目 錄

 

第1章 學習C++—認識C++ 1

1.1 C/C++的起源 1

1.2 C++的特色 2

1.3 關於ANSI/ISO C++標準 3

1.4 語言的翻譯過程 4

1.5 編寫代碼前的準備—安裝開發環境Visual Studio 2019 5

1.6 小試身手—新建一個C++項目 8

1.7 疑難解惑 11

1.8 經典習題 13

 

第2章 C++程序結構 14

2.1 簡單程序 14

2.2 C++程序分析 15

2.2.1 #include指令及頭文件 15

2.2.2 main函數 16

2.2.3 變量聲明和定義 17

2.2.4 函數的聲明 19

2.2.5 關於註釋 20

2.3 輸入輸出對象 22

2.3.1 cout輸出數據 22

2.3.2 cin讀取輸入數據 25

2.4 標識符 26

2.4.1 保留字 27

2.4.2 標識符命名 27

2.5 預處理 27

2.6 命名空間 30

2.6.1 命名空間的定義 30

2.6.2 using關鍵字 32

2.6.3 命名空間std 33

2.7 小試身手—入門經典程序 34

2.8 疑難解惑 35

2.9 經典習題 36

 

第3章 基本數據類型 37

3.1 變量與常量 37

3.1.1 變量 37

3.1.2 常量 40

3.2 基本變量類型 43

3.2.1 整數類型 43

3.2.2 字符類型 44

3.2.3 浮點數類型 46

3.2.4 布爾類型 48

3.3 typedef 49

3.4 小試身手—測試基本數據類型的字節長度 53

3.5 疑難解惑 54

3.6 經典習題 55

 

第4章 運算符和表達式 56

4.1 運算符概述 56

4.1.1 賦值運算符 56

4.1.2 算術運算符 57

4.1.3 關係運算符 59

4.1.4 邏輯運算符 60

4.1.5 自增和自減運算符 62

4.1.6 位邏輯運算符 63

4.1.7 移位運算符 65

4.1.8 三元運算符 66

4.1.9 逗號運算符 67

4.1.10 類型轉換運算符 68

4.2 運算符優先級和結合性 69

4.2.1 運算符優先級 69

4.2.2 運算符結合性 70

4.3 小試身手—綜合運用運算符 72

4.4 疑難解惑 73

4.5 經典習題 74

 

第5章 程序流程控制 75

5.1 順序語句 75

5.2 條件判斷語句 76

5.2.1 if條件 76

5.2.2 if-else條件 78

5.2.3 條件運算符 79

5.3 循環語句 80

5.3.1 for循環 81

5.3.2 while循環 82

5.3.3 do-while循環 83

5.4 跳出循環 84

5.4.1 continue 84

5.4.2 break 85

5.5 多重選擇語句 86

5.6 小試身手—計算商品總價 88

5.7 疑難解惑 90

5.8 經典習題 92

 

第6章 函數 93

6.1 函數的基本結構 93

6.1.1 函數的聲明、定義和調用 93

6.1.2 參數的傳遞方式 95

6.1.3 函數的默認參數 97

6.1.4 函數的返回值 99

6.2 變量的作用域 99

6.2.1 局部變量 99

6.2.2 靜態局部變量 100

6.2.3 外部變量 101

6.2.4 寄存器變量 102

6.3 特殊函數調用方式—遞歸調用 103

6.4 內聯函數 104

6.5 預處理器 106

6.5.1 #define預處理器 106

6.5.2 #define的作用 107

6.5.3 const修飾符 108

6.6 函數的重載 108

6.7 小試身手—漢諾塔問題函數 110

6.8 疑難解惑 111

6.9 經典習題 112

 

第7章 數組與字符串 113

7.1 一維數組 113

7.1.1 一維數組的聲明 113

7.1.2 數組初始化 114

7.1.3 數組的操作 115

7.2 二維數組和多維數組 117

7.2.1 二維數組的聲明 117

7.2.2 二維數組的使用和存取 117

7.2.3 多維數組 119

7.3 數組與函數 121

7.3.1 一維數組作為函數的參數 121

7.3.2 傳送多維數組到函數 122

7.4 字符串類 123

7.4.1 字符串的聲明 123

7.4.2 字符串的輸入和輸出 124

7.4.3 字符串處理 125

7.5 小試身手—判斷字符串回文 129

7.6 疑難解惑 131

7.7 經典習題 132

 

第8章 指針 133

8.1 指針概述 133

8.1.1 什麼是指針 133

8.1.2 為什麼要用指針 134

8.1.3 指針的地址 134

8.2 指針變量 135

8.2.1 指針變量的聲明 135

8.2.2 指針變量的使用 136

8.3 指針與函數 137

8.3.1 指針傳送到函數中 137

8.3.2 返回值為指針的函數 138

8.3.3 函數指針 140

8.4 指針與數組 141

8.4.1 指針的算術運算 141

8.4.2 利用指針存儲一維數組的元素 142

8.4.3 利用指針傳輸一維數組到函數中 143

8.5 指針與字符串 144

8.6 void指針 145

8.7 指向指針的指針 145

8.8 動態內存配置 146

8.8.1 使用基本數據類型做動態配置 147

8.8.2 使用數組做動態配置 148

8.9 小試身手—判斷字符串中有多少個整數 149

8.10 疑難解惑 151

8.11 經典習題 152

 

第9章 struct和其他復合類型 153

9.1 struct 153

9.1.1 struct的聲明 153

9.1.2 struct變量的初始化與使用 155

9.1.3 struct數組初始化 156

9.2 將結構體變量作為函數參數 158

9.2.1 將整個結構體傳送到函數 158

9.2.2 傳送結構體的地址到函數 159

9.3 union 160

9.3.1 union的定義和聲明 160

9.3.2 union類型的初始化和使用 161

9.3.3 struct和union的差異 163

9.4 enum 163

9.4.1 enum的定義和聲明 163

9.4.2 enum的初始化和使用 164

9.5 小試身手—學生信息登記表 166

9.6 疑難解惑 168

9.7 經典習題 169

 

第10章 類 170

10.1 認識類 170

10.1.1 類的基本概念 170

10.1.2 類的定義 170

10.1.3 類對象的生成 172

10.1.4 類對象指針 173

10.2 成員函數 175

10.3 嵌套類 177

10.4 const成員函數 177

10.5 類成員的訪問控制 179

10.5.1 私有成員 180

10.5.2 公有成員 181

10.6 靜態成員 182

10.6.1 靜態數據成員 182

10.6.2 靜態成員函數 184

10.7 友元 186

10.8 小試身手—棧類的實現 187

10.9 疑難解惑 189

10.10 經典習題 190

 

第11章 構造函數和析構函數 191

11.1 構造函數初始化類對象 191

11.1.1 什麼是構造函數 191

11.1.2 使用構造函數 192

11.2 析構函數清除類對象 193

11.2.1 析構函數的概念 193

11.2.2 析構函數的調用 194

11.3 默認構造函數 195

11.4 重載構造函數 197

11.4.1 重載構造函數的作用 197

11.4.2 重載構造函數的調用 197

11.5 類對像數組的初始化 198

11.5.1 類對像數組調用 198

11.5.2 類對像數組和默認構造函數 200

11.5.3 類對像數組和析構函數 201

11.6 拷貝構造函數 203

11.6.1 拷貝構造函數的概念 203

11.6.2 深拷貝和淺拷貝 204

11.7 小試身手—構造函數和析構函數的應用 206

11.8 疑難解惑 208

11.9 經典習題 208

 

第12章 運算符的重載 210

12.1 什麼是運算符重載 210

12.1.1 運算符重載的形式 211

12.1.2 可重載的運算符 213

12.2 重載前置運算符和後置運算符 213

12.2.1 重載前置運算符 214

12.2.2 重載後置運算符 215

12.3 插入運算符和折取運算符的重載 217

12.3.1 插入運算符的重載 217

12.3.2 折取運算符的重載 218

12.4 常用運算符的重載 220

12.4.1 “<”運算符的重載 220

12.4.2 “+”運算符的重載 222

12.4.3 “=”運算符的重載 223

12.5 小試身手—運算符重載實例 225

12.6 疑難解惑 227

12.7 經典習題 227

 

第13章 類的繼承 228

13.1 面向對象編程概述 228

13.1.1 面向對象編程的幾個概念 228

13.1.2 面向對象編程與面向過程編程的區別 229

13.2 繼承的基本概念 229

13.2.1 基類和繼承類 229

13.2.2 簡單的基礎實例 231

13.2.3 調用父類中的構造函數 236

13.3 子類存取父類成員 239

13.3.1 私有成員的存取 239

13.3.2 繼承與靜態成員 241

13.3.3 多繼承 242

13.4 小試身手—繼承的應用 245

13.5 疑難解惑 246

13.6 經典習題 247

 

第14章 虛函數和抽像類 248

14.1 什麼是虛函數 248

14.1.1 虛函數的作用 248

14.1.2 動態綁定和靜態綁定 250

14.2 抽像類與純虛函數 252

14.2.1 定義純虛函數 252

14.2.2 抽像類的作用 253

14.2.3 虛析構函數 254

14.3 抽像類的多重繼承 256

14.4 虛函數表 257

14.4.1 什麼是虛函數表 257

14.4.2 繼承關係的虛函數表 259

14.5 小試身手—抽像類的應用 261

14.6 疑難解惑 263

14.7 經典習題 264

 

第 15 章 C++中的文件處理 265

15.1 文件的基本概念 265

15.1.1 文件I/O 265

15.1.2 文件順序讀寫 269

15.1.3 隨機文件讀寫 269

15.2 文件的打開與關閉 271

15.2.1 文件的打開 271

15.2.2 文件的關閉 273

15.3 文本文件的處理 274

15.3.1 將變量寫入文件 274

15.3.2 將變量寫入文件尾部 275

15.3.3 從文本文件中讀入變量 275

15.3.4 使用get()、getline()和put()函數 276

15.4 二進製文件的處理 279

15.5 小試身手—文件操作 281

15.6 疑難解惑 283

15.7 經典習題 284

 

第16章 異常處理 285

16.1 異常的基本概念 285

16.2 異常處理機制 285

16.3 拋出異常 287

16.4 重新拋出異常 289

16.5 捕獲所有異常 290

16.6 不是錯誤的異常 291

16.7 未捕捉到的異常 292

16.8 標準異常 292

16.9 異常規範 293

16.10 異常與繼承 294

16.11 異常處理的應用 295

16.11.1 自定義異常類 295

16.11.2 捕獲多個異常 297

16.12 小試身手—異常處理 298

16.13 疑難解惑 300

16.14 經典習題 301

 

第17章 模板與類型轉換 302

17.1 模板 302

17.1.1 函數模板 302

17.1.2 類模板 304

17.1.3 模板參數 306

17.1.4 模板的特殊化 307

17.1.5 重載和函數模板 308

17.2 類型識別和強制轉換運算符 310

17.2.1 運行時類型識別 310

17.2.2 強制類型轉換運算符 314

17.3 小試身手—模板應用 316

17.4 疑難解惑 318

17.5 經典習題 319

 

第18章 容器和迭代器 320

18.1 STL 320

18.2 迭代器 320

18.3 順序容器 322

18.3.1 向量 322

18.3.2 雙端隊列 323

18.3.3 列表 324

18.4 關聯容器 326

18.4.1 集合和多重集合 326

18.4.2 映射和多重映射 328

18.5 容器適配器 329

18.5.1 棧 329

18.5.2 隊列 330

18.5.3 優先級隊列 332

18.6 小試身手—容器操作實例 333

18.7 疑難解惑 338

18.8 經典習題 338

 

第19章 開發商場採購系統 339

19.1 系統需求分析 339

19.2 功能分析 340

19.3 系統代碼編寫 341

19.3.1 密碼文件和購物單文件 341

19.3.2 管理員登錄功能 342

19.3.3 採購系統的主功能 345

19.3.4 採購操作功能和驗證功能的實現 350

19.3.5 主程序運行入口 356

19.4 系統運行 357

 

第20章 開發推箱子遊戲 359

20.1 系統功能描述 359

20.2 系統功能分析及實現 359

20.2.1 功能分析 359

20.2.2 功能實現 360

20.3 遊戲運行 365