1、由C到C++的變化:過程性編程-----》結構化編程-----》面向對象編程(OOP); 試圖讓實際問題滿足語言的過程性方法----》試圖讓語言來滿足實際問題的要求;自上而下的設計過程(將程序、大任務分解為各個小任務的過程)----》自下而上的設計過程(從低級組織【如類】到高級組織【如程序】的處理過程)
2、C++中OOP和C++泛型編程:二者的目標相同,即使重用代碼和抽象通用概念的技術更簡單。不過OOP強調的是編程的數據方面,而泛型編程強調的是獨立於特定數據類型。它們的側重點不同。OOP是一個管理大型項目的工具,而泛型編程提供了執行常見任務(如對數據排序或合並鏈表)的工具。
3、c++程序構建過程,各大系統下編譯器行為簡介 源代碼---》目標代碼-----》鏈接
4、命名空間
5、變量的聲明與定義
在聲明部分出現的變量有兩種情況:一種是需要建立存儲空間的(如int a;);另一種是不需要建立存儲空間的(如extern int a;)。前者稱為定義性聲明(defining declaration),或簡稱為定義(definition)。后者稱為引用性聲明(referenceing declaration)。廣義地說,聲明包括定義,但並非所有的聲明都是定義。對“int a;” 而言,它是定義性聲明,既可說是聲明,又可說是定義。而對“extern int a;” 而言,它是聲明而不是定義。一般為了敘述方便,把建立存儲空間的聲明稱為定義,而把不需要建立存儲空間的聲明稱為聲明。
用static來聲明一個變量的作用有二:
對局部變量用static聲明,使該變量在本函數調用結束后不釋放,整個程序執行期間始終存在,使其存儲期為程序的全過程。
全局變量用static聲明,則該變量的作用域只限於本文件模塊(即被聲明的文件中)。
定義時聲明某個變量時同時復制給變量,就叫變量初始化。
6、類簡介:要定義類,需要描述它能夠表示什么信息和可對數據執行哪些操作。類之於對象就像類型之於變量。
7、函數原型:函數原型之於函數就像變量聲明之於變量----指出涉及的類型。
函數原型、函數體、函數頭、函數類型、函數定義 區分
8、常用整型:char、uchar、short、ushort、int、unsinged int、long、unsinged long 、long long 、unsigned long long
9、字面值常量:十進制、八進制、十六進制 表示 / 字面值常量加后綴表示字面值常量的類型 u/ul/ll
10、std::cout 控制輸出格式 dec、oct、dex
11、字符編碼與c++ 表示
12、C++ 源字符集(源代碼字符集) / C++程序執行字符集(程序執行期間可以使用的字符集,如可以從文本讀取或顯示在屏幕的字符集)
13、通用字符名
14、C++ 用於字符的類型由:char、uchar、w_char、char16_t、char32_t (基本字符集和擴展字符集)
15、const 限定符 常量,常量聲明時需初始化
16、C++浮點數的表示 (float double long double 能夠表示的數字有效位數的不同)
17、操作符重載:使用相同的符號進行多種不同的操作
18、取模運算只是用於整型,浮點數取模可以使用fmod(double)函數
19、C++中的自動類型轉換
自動類型轉換的基本規則:
20、數組名與指向數組的指針,二者都可以使用數組名加索引下標的方式訪問數組元素;不同的是數組名是一個指針常量,不能更改指向的地址,其值不能更改,而后者可以自增、自減及賦值
21、指針的使用可能帶來的問題
22、C++中的內存分配方式不同,管理數據內存的方式也不同,大致有3種:自動存儲(代碼段中的棧空間數據對象)、靜態存儲(全局數據對象、static聲明數據對象)、動態存儲(malloc/free、new/delete 堆空間分配的數據對象)
23、數組、vector、array
數組、vector、array 都可以使用數組下標 [] 來訪問其中的元素,但 [] 對越界的索引值不會做出提示;而vector和array同時也可以使用成員函數at()來訪問元素,若越界則程序將拋出異常;[] 比 at() 執行效率高
24、復合數據類型
25、for循環(由控制體和循環體兩部分構成;控制體由初始化、測試、 更新操作 構成)
26、自增、自減 (a++ 在表達式中時表示使用a當前的值進行計算;++a 在表達式中時表示使用a自增之后的值進行計算)
自增、自減副作用
27、函數
28、指針
29、二維數組表示法
30、C風格字符串
31、函數指針
32、使用函數指針調用函數
33、函數指針數組
34、內聯函數 inline 關鍵字聲明;編譯器將部分常規函數優化成 內聯函數;內聯函數 是程序編譯成二進制指令時,直接將函數體的二進制指令編入,而不是記錄函數的內存地址。(內聯函數不能遞歸)
35、內聯 與 宏函數 ;內聯有類型檢查與類型轉換;而宏函數定義,僅僅是在預處理時做了 文本替換。
36、引用 變量的別名(引用聲明時必須初始化)