Posted on 2008-06-05 11:35
RichardHe 閱讀(873)
評(píng)論(0) 編輯 收藏 引用
今天一直在學(xué)習(xí)使用BOOST中的FUNCTION和BIND;
boost::bind(&類(lèi)::方法,對(duì)象指針,_1等);//如果有函數(shù)的話(huà),后面數(shù)字就幾個(gè)參數(shù)
bind返回的是一個(gè)函數(shù)指針對(duì)象.所以再賦值給一個(gè)函數(shù)對(duì)象
如:boost::function(返回類(lèi)型(參數(shù)類(lèi)型,參數(shù)類(lèi)型)) funptr
賦值為:funptr = boost::bind(.....);
這次以后就可以不再用這個(gè)類(lèi)的對(duì)象了,直接用函數(shù)對(duì)象調(diào)用
如funptr(參數(shù)......)
這樣的優(yōu)點(diǎn)我無(wú)法表達(dá).網(wǎng)上有人說(shuō)是簡(jiǎn)化了COMMAND這種設(shè)計(jì)模式
不用再去定義類(lèi)成員函數(shù)形式的函數(shù)對(duì)象,只是普通函數(shù)對(duì)象
泛型函數(shù):
struct functor // 這是個(gè)仿函數(shù)類(lèi),形式為int(int)
{
int operator()(int)
{
}
}
functor f3;//創(chuàng)建仿函數(shù)對(duì)象