《C++ Primer Plus 6th》读书笔记 - 第8章 函数探幽
1. 摘錄
默認(rèn)參數(shù)指的是當(dāng)函數(shù)調(diào)用中省略了實(shí)參時(shí)自動(dòng)使用的一個(gè)值。
默認(rèn)參數(shù)并非編程方面的重大突破,而只是提供了一種便捷的方式。使用默認(rèn)參數(shù),可以減少要定義的析構(gòu)函數(shù)、方法以及方法重載的數(shù)量。
試圖在同一個(gè)文件(或轉(zhuǎn)換單元)中使用同一種類型的顯式實(shí)例和顯式具體化將出錯(cuò)。
2. 最佳函數(shù)匹配
完全匹配 > 提升轉(zhuǎn)換 > 標(biāo)準(zhǔn)轉(zhuǎn)換 > 用戶定義的轉(zhuǎn)換
通常有兩個(gè)函數(shù)完全匹配是錯(cuò)誤的,但有兩個(gè)例外。
- const和非const之間的區(qū)別只適用于指針和引用指向的數(shù)據(jù)
- 非模板函數(shù)將優(yōu)于模板函數(shù)
- 在都是模板函數(shù)的情況下,較具體的模板函數(shù)優(yōu)先
3. 關(guān)鍵字decltype
1 template<class T1, class T2> 2 void ft(T1 x, T2 y) 3 { 4 decltype(x + y) xpy = x + y; // make xpy the same type as x + y 5 }為了判斷一下語句,編譯器必須遍歷一個(gè)核對表
1 decltype(expression) var;STEP1. 如果expression是一個(gè)沒有用括號(hào)括起的標(biāo)識(shí)符,則var的類型與該標(biāo)識(shí)符的類型相同,包括const等限定符。
STEP2. 如果expression是一個(gè)函數(shù)調(diào)用,則var的類型與函數(shù)的返回類型相同。 (并不實(shí)際調(diào)用函數(shù))
STEP3. 如果expression是一個(gè)左值,則var為指向其類型的引用。
STEP4. 如果前面的條件都不滿足,則var的類型與expression的類型相同。
4. C++11后置返回類型
1 template<class T1, class T2> 2 auto h(int x, float y) -> double 3 {/* function body */}?
轉(zhuǎn)載于:https://www.cnblogs.com/Azurewing/p/4143724.html
總結(jié)
以上是生活随笔為你收集整理的《C++ Primer Plus 6th》读书笔记 - 第8章 函数探幽的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可伸缩搜索框 旋转实现loading
- 下一篇: MVC增加操作日志