C++ Primer Plus 第八章筆記

1.        內聯函數的運行速度比常規函數稍快,但佔用內存。要使用這項特性,需在函數聲明和定義前加上關鍵字incline

2.        必須在聲明引用時將其初始化,且一旦與某個變量關聯起來,就不能改變。

3.        若將引用作爲函數的參數時,其實參應是變量,不能是表達式。

4.        對於形參爲const引用的C++函數,如果實參不匹配(實參類型正確,但不是左值;實參類型不正確,但可轉化爲正確的類型),則C++將創建類型正確的匿名變量,將函數調用的參數的值傳遞給該匿名變量。

5.        C++11新增了右值引用,可指向右值,使用(&&)聲明。

6.        繼承的特徵:派生類繼承了基類的方法;基類引用可以指向派生類對象而無需進行強制類型轉換。

7.        存儲格式化設置並恢復:

8.        使用默認參數時,只有原型指定了默認值,函數定義與沒有默認參數時完全相同。

9.        使用被重載的函數時,需要在函數調用中使用正確的參數類型,否則參數會存在有幾種強制類型轉換的方式,而被拒絕調用。

10.    若要重載模板定義,被重載的模板的函數特徵標必須不同。

11.    顯式具體化提供一個具體化函數定義,當編譯器找到與函數調用匹配的具體化定義時,將使用該定義,而不再尋找模板。

注意:顯式具體化的原型和定義應以template<>開頭,並通過名稱指出類型;

     具體化優先於常規模板,廢模板函數優先於具體化和常規模板。

12.    編譯器使用模板爲特定類型生成函數定義時,得到的是模板實例,這種實例化方式被稱爲隱式實例化。

13.    顯示實例化:在聲明前加上關鍵字template,並在函數名後用<>符號指示類型。

注意:不能再同意文件中使用同一種類型的顯示實例和顯式具體化。

14.    C++11新增關鍵字decltype使用:decltype(expression)var;

expression是一個沒有用()括起的標識符,則var的類型與expression相同,否則var爲指向其類型的引用;若expression是一個函數調用,則var類型與函數返回類型相同,但不實際調用函數;若以上條件均不滿足,則var類型與expression相同。

15.    C++11後置返回類型:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章