閱讀129 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C++ 11 新關鍵字

C++ 11 新關鍵字

auto   delctype

auto 類型說明符。auto讓編譯器通過初始值來推算變量的類型。
顯然,auto定義的變量必須有初始值。
使用auto也能在一條語句中聲明多個變量。注意一條聲明語句隻能有一個基本數據類型。
delctype 類型說明符。從表達式的類型推斷要定義的變量的類型。
delctype ()括號內可以是變量、表達式或函數返回值。

nullptr

C C++中NULL的定義是不一樣的。
微笑問:為什麼C++在NULL上選擇不完全兼容C?
答:根本原因和C++的重載函數有關。C++通過搜索匹配參數的機製,試圖找到最佳匹配(best-match)的函數,而如果繼續支持void*的隱式類型轉換,則會帶來語義二義性(syntax ambiguous)的問題。

// 考慮下麵兩個重載函數   
void foo(int i);  
void foo(char* p)  
foo(NULL); // which is called?  

現在使用nullptr關鍵字,就不用宏了。


 constexpr

constexpr,const expression,常量表達式。是指在編譯階段就能得到計算結果的表達式。如常量與字麵值之間的運算。

複雜係統編程中,很難分辨一個初始值到底是不是常量表達式。所以C++11允許將變量聲明為constexpr類型,讓編譯器去驗證。

 final

C++11新標準提供了防止類被繼承的方法——在類後使用final關鍵字。

 

 

最後更新:2017-04-03 05:39:19

  上一篇:go 數據庫設計
  下一篇:go 雲計算的安全問題