C++中tr1::function和bind 組件的使用

摘自:http://www.cnblogs.com/zhangzhang/archive/2012/03/21/2409164.html

爲什麼要使用?

 它們可以實現類似函數指針的功能,卻比函數指針更加靈活(體現在佔位符上面),尤其是在很多成員調用同一個函數(僅僅是參數類型不同)的時候比較方便

 這個是函數指針做不到的

要注意的地方:

 使用的時候一定要注意指向的是沒有this指針的函數(全局函數或靜態成員函數),還是有this指針的函數。後面一種必須要用bind()函數。而且要多一個參數。

注意bind的參數順序: bind(&要調用的函數,&對象, 要調用函數的參數1,要調用函數的參數2…,_1(bind函數的參數1),_2(bind函數的參數2)…)
佔位符號的參數是由 function 調用的時候傳入的。 參數可以由function傳入,也可由bind實現綁定傳入,這兩個是可以調整的。

class Foo
{
public:
void methodA();
void methodInt(int a);
};
class Bar
{
public:
void methodB();
};

boost::function

include

include

include

include

發佈了34 篇原創文章 · 獲贊 21 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章