C 11的function函式物件

2021-10-07 02:16:59 字數 1331 閱讀 1955

c++中的函式種類很多:

但這些函式可能共享一種呼叫方式。呼叫形式指明了呼叫返回的型別以及傳遞給呼叫的實參型別。比如:int(int, int);

std::function是乙個通用的多態函式包裝器,可以呼叫普通函式、lambda函式、仿函式、bind物件、類的成員函式和指向資料成員的指標,function定義在名為function.h標頭檔案中。是乙個模板,在建立function例項時,必須指明型別,如:

function
這裡宣告了乙個function型別,它可以表示接受兩個int、返回乙個int的可呼叫函式。

以前的c的函式指標用法:

int c_func(int a, int b)

int main(int argc, char** ar**)

c++ 98的用法:

struct func

};int main(int argc, char** ar**)

在c++11可以直接使用function。

int func(int a, int b)

int main(int argc, char** ar**)

struct func

};int main(int argc, char** ar**)

int main(int argc, char** ar**)

; std::functionfunc = fun;

fun(1, 2);

return 0;

}

struct func

};int main(int argc, char** ar**)

struct func

};int main(int argc, char** ar**)

struct func

int add(int a, int b)

int m_num;

};int main(int argc, char** ar**)

templatestruct func

int add2(t a, t b)

};templatet add(t a, t b)

int main()

C11 函式指標

函式指標 函式指標是指向函式的指標變數,因而 函式指標 本身首先應是指標變數,只不過指標變數指向函式。這正如用指標變數可指向整型變數,字元型,陣列一樣,這裡是指向函式,如前所述,c在編譯時,每乙個函式都有乙個入口位址,該入口位址就是函式指標所指向的函式的入口位址,有了指向函式的指標變數後,可用該指標...

C 11新特性(54) function類模版

函式指標是c語言中算是比較困難的內容之一,c語言實現的高階功能很多都離不開函式指標構成的列表。進入c 之後首先是引入了函式物件,接著c 11又引入了lamda表示式和引數繫結。上述4種技術有乙個共同的特徵,即都可以對其使用呼叫運算子,c 稱之為可呼叫物件。可呼叫物件雖然有著共同的呼叫模式,但是卻分別...

C 11的繼承建構函式

c 是物件導向的基石,類具有可派生性。派生類可以自動獲得基類的成員變數和介面,不過基類的非虛函式則無法再被派生類使用了。如果派生類要使用基類的建構函式,通常需要在建構函式中顯示宣告。例如 struct a struct b a b派生於a,b又在建構函式中呼叫a的建構函式,從而完成了建構函式的 傳遞...