0. 關于【深度C++】
2023年5月,看了一個月《C++ Primer(第5版)》的我,感覺很“頭疼”。
雖然看了很多,但是并沒有組織在一起。仿佛一個有很多線頭的毛線團,無從整理。
比如一口氣讓你說出const的用法,你需要分別翻閱書的第2章、第6章和第7章,才了解const可以修飾對象和函數,修飾對象還分為基本內置類型、自定義類型和復合類型,引用最好理解,指針最難判斷,成員函數的const究竟是如何工作的。
但是在你和別人交流的時候,很需要這樣“深度的”知識體系。因此萌生了這一系列【深度C++】的想法。
當你想象別人問你static都有什么用,你可以自豪地說“有4種用法,分別是局部變量、普通變量、普通函數和類成員,類成員還包括類成員變量和類成員函數”時,就知道知識為什么可以性感。
關于C++,我從三個大方向去總結。
- 面向對象C++
- 泛型編程C++
- STL
面向對象C++主要是C++語言的基礎,泛型編程C++主要基于模板,STL不言而喻就是結合了語言基礎和模板而來的編程庫。
本文是所有文章的目錄,有些還在創作中,有些已經發布了,但是隨著創作的進行也會更改。
本系列所有參考資料主要來源于《C++ Primer(第5版)》及網絡上其他作者分享的內容,均經過自我總結后放出。可能有些內容看得多了不知不覺就背誦了原作的原話,如有雷同,還請點明。
1. 面向對象C++
- 類型與變量
- 數組
- 引用
- 指針
- const
- 類與結構體
- 聯合體
- 枚舉
- 類型轉換
- 類型別名(typedef & using)
- 類型推斷(auto & decltype)
- 表達式與運算符
- 左值與右值
- 優先級表及左右值
- sizeof運算符
- 函數(聲明、定義、傳參、返回)
- 函數形參
- 函數重載
- 函數匹配
- 函數指針
- static
- 常量表達式constexpr
- const與constexpr
- lambda表達式
- 可調用對象
- 內存對齊
- 類內存布局
- 初始化
- 構造函數
- 對象移動
- this
- mutable
- 運行時類型識別RTTI(typeid & dynamic_cast)
2. 泛型編程C++
- 模板
- 函數模板
- 類模板
- 成員模板
3. STL
一、IO
二、容器
三、算法
四、智能指針
- shared_ptr
- unique_ptr
- weak_ptr