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 如果要定義...