C++語法詳解

C++語法詳解

《C++語法詳解》是電子工業出版社2017年7月出版的圖書,作者是 黃勇。

內容提要

《C++語法詳解》對C++的語法進行了全面介紹和深入講解,內容包括:C++整型、字元型、浮點型、聲明、定義、typedef、運算符、表達式、左值、選擇語句、循環語句、指針、數組、函式和標識符的作用域、類基礎、類作用域及相關運算符、構造函式、複製構造函式、析構函式、名稱空間、類中的成員、運算符(操作符)重載、繼承、虛函式、多態性、對象模型、虛函式表、模板、I/O、異常、預處理器、typeid、強制類型轉換和string類等。《C++語法詳解》層次分明,由淺入深,各章節相對獨立,語法示例短小精悍,方便對有疑惑的語法進行速查。學習完《C++語法詳解》,讀者不會再對C++的各種語法感到困惑。

《C++語法詳解》適合有一定C++基礎、對C++的語法有疑惑、想深入了解C++語法細節的人員閱讀。《C++語法詳解》同時也可以作為解決C++語法問題的參考書;對於學習過C++或已精通C++的人員,也是一本不錯的資料查閱手冊。

目錄

第1 章 C++快速入門 1

第2 章 整型、字元型和浮點型專題 6

2.1 基礎 6

2.2 整型和sizeof 操作符 8

2.3 char(字元型) 11

2.4 bool(布爾型) 16

2.5 浮點型 17

2.6 符號常量和#define 預處理指令簡介 22

第3 章 聲明、定義、複雜聲明和typedef 專題 23

3.1 聲明與定義 23

3.2 複雜聲明和typedef 的使用 31

3.2.1 複雜聲明 31

3.2.2 typedef 34

第4 章 運算符、表達式和左值專題 40

4.1 賦值、左值和右值 41

4.2 表達式和運算符 42

4.2.1 基礎 42

4.2.2 表達式的副作用和順序點 44

4.2.3 運算符的優先權、結合性和運算元的求值順序 45

4.2.4 運算符性質總結 46

4.3 運算符 47

4.3.1 二元算術運算符 47

4.3.2 關係運算符 49

4.3.3 邏輯運算符 50

4.3.4 賦值運算符 51

4.3.5 複合賦值運算符 52

4.3.6 遞增和遞減運算符 54

4.3.7 位運算符 56

4.3.8 條件運算符 58

4.3.9 逗號運算符 60

4.3.10 sizeof 運算符 61

4.4 類型轉換 61

4.4.1 基礎 61

4.4.2 各種類型轉換 61

4.4.3 轉換溢出處理 64

4.4.4 強制類型轉換運算符 65

第5 章 選擇語句和循環語句專題 68

5.1 語句概念 68

5.2 if 語句 69

5.3 switch 語句 72

5.4 while 和do-while 語句 77

5.5 for 語句 79

5.6 continue 和break 語句 81

5.7 循環語句頭定義的變數的作用域 82

5.8 goto 跳轉語句簡介 83

第6 章 指針和數組專題 84

6.1 指針 84

6.1.1 指針的概念 87

6.1.2 &與*運算符 88

6.1.3 指針(變數)的聲明、初始化 92

6.1.4 各種指針 93

6.1.5 指針的簡單運算 98

6.2 數組 100

6.2.1 一維數組 100

6.2.2 多維數組 104

6.3 指針與數組 106

6.3.1 理解數組名 106

6.3.2 指針與數組的混合運算 109

6.3.3 數組指針(*p)[]和指針數組*p[] 112

6.4 動態分配記憶體new 關鍵字 115

6.4.1 記憶體管理基礎 115

6.4.2 使用new 動態分配單個對象 116

6.4.3 使用new 動態創建數組 118

6.4.4 使用new 動態分配記憶體的類型分析 121

6.4.5 使用多級指針動態創建多維數組 122

6.4.6 delete 常見錯誤及記憶體錯誤 125

6.4.7 使用malloc/free 動態創建和釋放記憶體簡介 127

6.5 C 風格字元串 128

6.5.1 C 風格字元串 128

6.5.2 C 風格字元串的標準庫函式 131

6.5.3 C 風格字元串的輸入/輸出 132

第7 章 函式和標識符的作用域專題 133

7.1 函式基本語法規則. 133

7.1.1 函式聲明、定義及形參的語法規則 133

7.1.2 函式調用、實參、返回值、return 語句語法規則 137

7.2 函式參數傳遞 141

7.2.1 指針形參和引用形參 141

7.2.2 數組形參 144

7.2.3 函式指針 148

7.2.4 默認參數與可變形參 150

7.2.5 內聯函式、main 函式、extern"C"連結指示符 151

7.3 函式重載 154

7.4 函式匹配(或函式重載解析) 155

7.4.1 函式匹配的過程 155

7.4.2 候選函式的確定方法 156

7.4.3 確定最佳匹配函式的方法 156

7.4.4 完全匹配詳解 159

7.5 作用域、存儲持續期、連結性和存儲類區分符 164

7.5.1 作用域 164

7.5.2 存儲持續期、連結性與作用域 167

7.5.3 將程式寫在多個檔案中 175

第8 章 類基礎、類作用域及相關運算符專題 177

8.1 面向對象程式設計基本概念 177

8.2 類的聲明/定義、類成員簡介及相關運算符 181

8.2.1 類和對象的聲明、定義 181

8.2.2 類成員簡介、成員運算符、作用域解析運算符、訪問控制符 182

8.3 類作用域 187

8.3.1 類作用域中的名稱 187

8.3.2 類作用域中的名稱解析 189

第9 章 構造函式、複製構造函式和析構函式專題 192

9.1 構造函式與析構函式簡介 192

9.1.1 構造函式、默認構造函式、單形參構造函式、explicit 關鍵字 192

9.1.2 析構函式 195

9.2 對象初始化 198

9.2.1 使用構造函式、默認構造函式初始化對象 198

9.2.2 使用成員初始化表初始化數據成員 200

9.2.3 使用複製構造函式初始化對象及臨時對象 202

第10 章 名稱空間專題 207

10.1 名稱空間基礎 207

10.2 名稱空間的分類 209

10.3 訪問名稱空間中的名稱 211

10.4 名稱空間中的名稱解析 214

第11 章 類中的成員專題 217

11.1 靜態成員 217

11.1.1 靜態數據成員 217

11.1.2 靜態成員函式 221

11.2 const 成員、mutable 關鍵字、this 指針 222

11.3 對象數組、對象成員、數組成員和對象數組成員 225

11.3.1 對象數組 225

11.3.2 對象成員、數組成員和對象數組成員 226

11.4 嵌套類、局部類、友元. 228

11.4.1 嵌套類 228

11.4.2 局部類 232

11.4.3 友元 232

11.5 指向類成員的指針 237

11.6 枚舉、聯合(共用體)、位段(域) 240

11.6.1 枚舉類型 240

11.6.2 聯合(共用體)類型 244

11.6.3 位段(域) 246

第12 章 運算符(操作符)重載專題 249

12.1 運算符重載基本概念 249

12.2 運算符重載示例 252

12.3 轉換函式和重載解析 260

12.3.1 轉換函式 260

12.3.2 有轉換函式時的函式重載解析 263

12.3.3 帶有類類型實參和在類作用域中調用函式時函式重載解析 266

12.3.4 重載運算符函式時的重載解析 268

12.3.5 仿函式與重載解析 270

12.4 重載new/delete 運算符和定位new/delete 271

12.4.1 重載new/delete 運算符 271

12.4.2 定位(布局)new 和delete 277

12.4.3 new 表達式和new 運算符函式總結 282

第13 章 繼承、虛函式與多態性專題 284

13.1 繼承 284

13.1.1 繼承基礎及繼承後的訪問級別 284

13.1.2 繼承下的構造函式與複製控制 289

13.1.3 父類與子類間的轉換 291

13.1.4 繼承下的名稱解析、名稱隱藏及函式重載解析 294

13.1.5 多重繼承與虛基類 297

13.2 虛函式與多態性 302

13.2.1 多態性原理 302

13.2.2 虛函式 305

第14 章 對象模型與虛函式表專題 314

14.1 對象模型與虛函式表基礎、記憶體對齊、函式內部轉換 314

14.1.1 對象模型簡介 314

14.1.2 類成員的存儲次序與記憶體對齊 318

14.1.3 編譯器對函式的內部轉換與名稱改編 322

14.1.4 指向虛成員函式的指針 325

14.1.5 對成員函式的各種轉換總結 325

14.2 各種C++對象模型 326

14.2.1 指針與類型的關係 326

14.2.2 VC++ 2010 訪問虛函式表的三種方法 327

14.2.3 單繼承下的對象模型 330

14.2.4 多重繼承下的對象模型與this 指針調整 332

14.2.5 虛繼承下的對象模型 339

14.3 編譯器合成的各種構造函式和析構函式 342

14.3.1 編譯器合成的默認構造函式 342

14.3.2 編譯器合成的複製構造函式與按成員初始化 346

14.3.3 編譯器合成的複製賦值操作符函式 349

14.3.4 編譯器合成的析構函式 349

14.4 類對象創建和銷毀時編譯器實現原理 349

第15 章 模板專題 354

15.1 模板基礎 354

15.2 模板形參與模板實參詳解 359

15.2.1 類型形/實參與非類型形/實參 359

15.2.2 默認模板實參 363

15.2.3 模板模板形/實參 364

15.3 模板實參推演與顯式模板實參 365

15.3.1 基礎 365

15.3.2 模板實參推演 368

15.3.3 顯式模板實參 374

15.4 名稱的識別與依賴實參的查詢 375

15.4.1 依賴實參的查詢(ADL) 375

15.4.2 typename 前綴和template 前綴 380

15.5 實例化 383

15.5.1 實例化基本規則 384

15.5.2 實例化的時機和位置點及兩段式名稱查詢 384

15.5.3 顯式實例化 393

15.6 類模板中的成員 396

15.7 模板特化 401

15.7.1 全局特化與局部特化 401

15.7.2 類模板成員的特化及定義 406

15.8 有模板時的函式重載解析 410

15.9 模板與友元 416

15.9.1 基礎 416

15.9.2 把模板或其實例聲明為友元 417

15.10 模板與繼承 419

第16 章 I/O 專題 421

16.1 I/O 流模型及I/O 類組織結構 421

16.1.1 I/O 流模型 421

16.1.2 I/O 類組織結構 422

16.2 標準輸出流(ostream 類) 425

16.2.1 使用ostream 類的成員函式進行輸出 425

16.2.2 控制輸出時的格式 426

16.3 標準輸入流(istream 類) 432

16.3.1 流狀態 432

16.3.2 使用istream 類的成員函式進行輸入 434

16.4 檔案流 438

16.5 字元串流 445

16.6 C 風格字元串流 447

第17 章 異常專題 448

第18 章 預處理器、typeid 和強制類型轉換專題 464

第19 章 string 類專題 472

參考文獻 488

相關詞條

熱門詞條

聯絡我們