C 11 實用新特性總結

2021-10-03 19:20:36 字數 1871 閱讀 4956

template

<

classt1,

class

t2>

auto

add(t1x,t2 y)

->

decltype

(x+y)

只使用一次的函式物件,能否不要專門為其編寫乙個類?

只呼叫一次的簡單函式,能否在呼叫時才寫出其函式體?

形式 :

[外部變數訪問方式說明符]

(參數列)

->返回值型別語句組

外部變數訪問方式說明符形式 :

//可以在函式裡定義函式

auto ff=[=

,&y,

&z](

int n)

;cout <15)

int a[4]

=;sort

(a,a+4,

(int x,

int y)

->

bool);

for_each

(a,a+4,

(int x));

for_each

(a.begin()

,a.end()

,[&]

(int

&x))

;//實現遞迴求斐波那契數列第n項:

function<

int(

int)

>fib=

[&fib]

(int n)

;//function表示返回值為int,有乙個int引數的函式

try

catch

(typename variable)

catch(.

..)

如果乙個函式在執行的過程中,丟擲的異常在本函式內就被catch塊捕獲並處理了,那麼該異常就不會拋給這個函式的呼叫者(也稱「上一層的函式」);如果異常在本函式中沒被處理,就會被拋給上一層的函式。

cpp標準庫中有一些類代表異常,這些類都是從exception類派生而來

需要標頭檔案

以上類存在what()函式獲得異常字串

cpp運算子typeid是單目運算子,可以在程式執行過程中獲取乙個表示式的值的型別。typeid運算的返回值是乙個type_info類的物件,裡面包含了型別的資訊。

需要標頭檔案

使用方法

typeid

(i).

name()

;//輸出型別的字串

static_cast用來進用行比較「自然」和低風險的轉換,比如整型和實數型、字元型之間互相轉換。

static_cast不能來在不同型別的指標之間互相轉換,也不能用於整型和指標之間的互相轉換,也不能用於不同型別的引用之間的轉換。

reinterpret_cast用來進行各種不同型別的指標之間的轉換、不同型別的引用之間轉換、以及指標和能容納得下指標的整數型別之間的轉換。轉換的時候,執行的是逐個位元拷貝的操作。

用來進行去除const屬性的轉換。將const引用轉換成同型別的非const引用,將const指標轉換為同型別的非const指標時用它。

dynamic_cast專門用於將多型基類的指標或引用,強制轉換為派生類的指標或引用,而且能夠檢查轉換的安全性。對於不安全的指標轉換,轉換結果返回null指標。

ldynamic_cast不能用於將非多型基類的指標或引用,強制轉換為派生類的指標或引用

C 11 實用特性總結

c 11新引入的auto是乙個十分好用的特性,它的用途主要是自動型別推斷和返回值佔位。自動型別推斷 auto可以從表示式中推斷出 返回值型別 這裡一定要有乙個具體的表示式,然後根據表示式計算出結果,將結果返回給auto型別的變數。int main auto的自動型別推斷有兩個顯著優點,其一是可以省去...

C 11 新特性總結

vs2012以上版本支援 一.auto的使用 auto func less 自動表示函式指標 auto ite vector a.begin 自動表示stl的迭代器 auto p new foo 自動表示變數指標等變數 二.decltype int x 3 decltype x y x 從變數或表示...

C 11新特性總結 二

c 11 引入了一種更為簡單的for語句,這種for語句可以很方便的遍歷容器或其他序列的所有元素 vectorvec for int x vec 如果要定義指向這個陣列的指標呢 int p arr 10 arr 注意 int p arr 10 表示乙個陣列,有10個元素,元素型別是int 如果要定義...