1、型別說明符auto
2.decltype提取型別
int a = 0;
decltype(a) b;
b = 10;
cout << b << endl;
3.基於範圍的for迴圈
4.虛函式的override和final指示符
final修飾類:類無法被繼承
final修飾虛函式:虛函式不能被重寫
override就是輔助你檢查是否繼承了想要虛繼承的函式
5.constexpr
其語義是「常量表示式」,也就是在編譯期可求值的表示式
(提供顯式「要求」表示式編譯時(compile-time)求值的方法)
constexpr int inc(int i)
constexpr int a = inc(1); // ok
constexpr int b = inc(cin.get()); // !error
constexpr int c = a * 2 + 1; // ok
6.noexcept
noexcept可以用來修飾函式,在函式的後面加上noexcept,代表這個函式不會丟擲異常,如果丟擲異常程式就會終止。這個特性在c++11**現很多,主要是為了當程式不該出現異常的地方丟擲異常時終止程式,例如delete函式、析構函式預設都是noexcept
using namespace std;
void print_exp() noexcept
int main()
結果
terminate called after throwing an instance of 'int'
已放棄 (核心已轉儲)
7.匿名函式
int main()
; std::cout << add(1, 2) << std::endl;
return 0;
}
下面解釋了捕獲列表
#include int main()
; std::cout << add(1, 2) << std::endl;
auto add2 = [&c](int a, int b)->int ; // 這種形式也是可以的
std::cout << add2(1, 2) << std::endl;
return 0;
}
shared_ptrpa(new a);
auto_ptrpa1(new a);
unique_ptrpa2(new a);
C 11的新特性
c 11提供在類中定義類的資料成員,可以直接在成員之後新增 預設值 當通過編譯器自動生成的預設建構函式初始化物件時,對應的資料成員就會被初始化成對應的預設值。class test int main 在c 98中,陣列可以使用 來進行初始化,對自定義型別是不可以的。在c 11中,的使用範圍變得更廣,可...
C 11的新特性
1.auto關鍵字 編譯器可以根據初始值自動推導出型別。但是不能用於函式傳參以及陣列型別的推導。2.nullptr關鍵字 nullptr是一種特殊型別的字面值,它可以被轉換成任意其它的指標型別 而null一般被巨集定義為0,在遇到過載時可能會出現問題。3.智慧型指標 c 11新增了std share...
C 11的新特性
1.auto自動變數 vs 2010支援 2.c 11新增模板類array c 11支援對模板類vector的列表初始化。3.c 11新增了另一種引用,右值引用,是使用 宣告的 double j 15.0 double jref 2.0 j 18.5 不能使用double 宣告jref 4.c 11...