語言可用性的強(qiáng)化

2.1 常量

?nullptr?關(guān)鍵字,專門用來區(qū)分空指針、0。而?nullptr?的類型為?nullptr_t,能夠隱式的轉(zhuǎn)換為任何指針或成員指針的類型,也能和他們進(jìn)行相等或者不等的比較。

?constexpr?讓用戶顯式的聲明函數(shù)或?qū)ο髽?gòu)造函數(shù)在編譯器會(huì)成為常量表達(dá)式。

從 C++14 開始,constexptr 函數(shù)可以在內(nèi)部使用局部變量、循環(huán)和分支等簡單語句

2.2 變量及其初始化

if/switch 變量聲明強(qiáng)化? 可以在?if?和?switch?語句中聲明一個(gè)臨時(shí)的變量

std::initializer_list? 初始化列表? ,允許構(gòu)造函數(shù)或其他函數(shù)像參數(shù)一樣使用初始化列表,這就為類對象的初始化與普通數(shù)組和 POD 的初始化方法提供了統(tǒng)一的橋梁。 初始化列表除了用在對象構(gòu)造上,還能將其作為普通函數(shù)的形參

2.3 類型推導(dǎo)

auto?進(jìn)行類型推導(dǎo)?不能用于函數(shù)傳參?不能用于推導(dǎo)數(shù)組類型

decltype? decltype(表達(dá)式) 解決了 auto 關(guān)鍵字只能對變量進(jìn)行類型推導(dǎo)的缺陷?std::is_same?用于判斷?T?和?U?這兩個(gè)類型是否相等

尾返回類型推導(dǎo)?利用 auto 關(guān)鍵字將返回類型后置

decltype(auto)?主要用于對轉(zhuǎn)發(fā)函數(shù)或封裝的返回類型進(jìn)行推導(dǎo),它使我們無需顯式的指定?decltype?的參數(shù)表達(dá)式

2.4 控制流

if constexpr?允許在代碼中聲明常量表達(dá)式的判斷條件

區(qū)間 for 迭代 for (auto element : vec)? for (auto &element : vec)

2.5 模板

2.6 面向?qū)ο?br>

委托構(gòu)造?使得構(gòu)造函數(shù)可以在同一個(gè)類中一個(gè)構(gòu)造函數(shù)調(diào)用另一個(gè)構(gòu)造函數(shù),從而達(dá)到簡化代碼的目的

using?繼承構(gòu)造函數(shù)

當(dāng)重載虛函數(shù)時(shí),引入?override?關(guān)鍵字將顯式的告知編譯器進(jìn)行重載,編譯器將檢查基函數(shù)是否存在這樣的虛函數(shù),否則將無法通過編譯

顯式禁用默認(rèn)函數(shù)?允許顯式的聲明采用或拒絕編譯器自帶的函數(shù)

Magic() =default;//顯式聲明使用編譯器生成的構(gòu)造

Magic&operator=(constMagic&) =delete;//顯式聲明拒絕編譯器生成構(gòu)造

強(qiáng)類型枚舉 枚舉類(enumaration class),并使用?enum class?的語法進(jìn)行聲明。這樣定義的枚舉實(shí)現(xiàn)了類型安全,首先他不能夠被隱式的轉(zhuǎn)換為整數(shù),同時(shí)也不能夠?qū)⑵渑c整數(shù)數(shù)字進(jìn)行比較,更不可能對不同的枚舉類型的枚舉值進(jìn)行比較。但相同枚舉值之間如果指定的值相同,那么可以進(jìn)行比較

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容