本書一共 19 章,以 C++20 為標(biāo)準(zhǔn),講述了最新的現(xiàn)代 C++所能提供的編程特性,有其他語言編程經(jīng)驗(yàn)的讀者可以快速了解 C++所具備的功能,從而獲得對(duì)現(xiàn)代 C++的更全面認(rèn)知,以便更好地了解現(xiàn)代 C++語言已經(jīng)發(fā)展到的程度。資深程序員可以從他的整體行文風(fēng)格中,感受到他在設(shè)計(jì) C++特性時(shí)的一些思考考量以及側(cè)重點(diǎn),了解C++這門語言在歷史上曾經(jīng)經(jīng)歷了一些什么變遷,以及一部分特性為什么會(huì)是今天這個(gè)樣子。
本賈尼?斯特勞斯特魯普是 C++ 的設(shè)計(jì)者和原始實(shí)現(xiàn)者,也是本書及《C++程序設(shè)計(jì)原理與實(shí)踐》(第2版)和《C++程序設(shè)計(jì)語言》(第4版)等領(lǐng)域名著的作者。他目前是哥倫比亞大學(xué)教授,之前曾在 AT&T 貝爾實(shí)驗(yàn)室、得克薩斯 A&M 大學(xué)和摩根士丹利工作。他曾獲得無數(shù)榮譽(yù),包括因開發(fā)和改進(jìn) C++ 編程語言所獲的美國國家工程院查爾斯·斯塔克·德雷珀獎(jiǎng)。
本賈尼?斯特勞斯特魯普是 C++ 的設(shè)計(jì)者和原始實(shí)現(xiàn)者,也是本書及《C++程序設(shè)計(jì)原理與實(shí)踐》(第2版)和《C++程序設(shè)計(jì)語言》(第4版)等領(lǐng)域名著的作者。他目前是哥倫比亞大學(xué)教授,之前曾在 AT&T 貝爾實(shí)驗(yàn)室、得克薩斯 A&M 大學(xué)和摩根士丹利工作。他曾獲得無數(shù)榮譽(yù),包括因開發(fā)和改進(jìn) C++ 編程語言所獲的美國國家工程院查爾斯·斯塔克·德雷珀獎(jiǎng)。
1 基礎(chǔ) ................................................................................................... 17
1.1 引言 .................................................................................................................................. 17
1.2 程序 .................................................................................................................................. 18
1.2.1 Hello, World! ....................................................................................................... 18
1.3 函數(shù) .................................................................................................................................. 20
1.4 類型、變量與運(yùn)算 .......................................................................................................... 21
1.4.1 算術(shù)運(yùn)算 ............................................................................................................. 23
1.4.2 初始化 ................................................................................................................. 24
1.5 作用域和生命周期 .......................................................................................................... 25
1.6 常量 .................................................................................................................................. 26
1.7 指針、數(shù)組和引用 .......................................................................................................... 27
1.7.1 空指針 ................................................................................................................. 29
1.8 檢驗(yàn) .................................................................................................................................. 30
1.9 映射到硬件 ...................................................................................................................... 32
1.9.1 賦值 ..................................................................................................................... 33
1.9.2 初始化 ................................................................................................................. 34
1.10 建議 ................................................................................................................................ 35
2 用戶自定義類型 ..................................................................................... 37
2.1 引言 .................................................................................................................................. 37
2.2 結(jié)構(gòu) .................................................................................................................................. 38
2.3 類 ...................................................................................................................................... 39
2.4 枚舉 .................................................................................................................................. 41
2.5 聯(lián)合 .................................................................................................................................. 43
2.6 建議 .................................................................................................................................. 44
3 模塊化 ............................................................................................... 45
3.1 引言 .................................................................................................................................. 45
3.2 分離編譯 .......................................................................................................................... 46
3.2.1 頭文件 ................................................................................................................. 47
3.2.2 模塊 ..................................................................................................................... 49
3.3 命名空間 .......................................................................................................................... 51
3.4 函數(shù)參數(shù)與返回值 .......................................................................................................... 53
3.4.1 參數(shù)傳遞 ............................................................................................................. 54
3.4.2 返回值 ................................................................................................................. 55
3.4.3 返回類型推導(dǎo) ..................................................................................................... 56
3.4.4 返回類型后置 ..................................................................................................... 56
3.4.5 結(jié)構(gòu)化綁定 ......................................................................................................... 57
3.5 建議 .................................................................................................................................. 58
4 錯(cuò)誤處理 ............................................................................................ 59
4.1 引言 .................................................................................................................................. 59
4.2 異常 .................................................................................................................................. 60
4.3 約束條件 .......................................................................................................................... 61
4.4 錯(cuò)誤處理的其他替代方式 .............................................................................................. 63
4.5 斷言 .................................................................................................................................. 64
4.5.1 assert() ................................................................................................................. 65
4.5.2 static_assert .......................................................................................................... 66
4.5.3 noexcept ............................................................................................................... 66
4.6 建議 .................................................................................................................................. 67
5 類 ..................................................................................................... 69
5.1 引言 .................................................................................................................................. 69
5.1.1 類的概述 ............................................................................................................. 70
5.2 具體類型 .......................................................................................................................... 70
5.2.1 一種算術(shù)類型 ..................................................................................................... 71
5.2.2 容器 ..................................................................................................................... 73
5.2.3 容器的初始化 ..................................................................................................... 74
5.3 抽象類型 .......................................................................................................................... 76
5.4 虛函數(shù) .............................................................................................................................. 78
5.5 類層次結(jié)構(gòu) ...................................................................................................................... 79
5.5.1 類層次結(jié)構(gòu)的益處 ............................................................................................. 81
5.5.