仿函數(shù)functor髓废,就是使一個類的使用看上去象一個函數(shù)该抒。其實現(xiàn)就是類中實現(xiàn)一個operator,這個類就有了類似函數(shù)的行為冈爹,就是一個仿函數(shù)類了欧引。
在我們寫代碼時有時會發(fā)現(xiàn)有些功能的實現(xiàn)的代碼,會不斷的在不同的成員函數(shù)中用到憋肖,但是又不好將這些代碼獨立出來成為一個類的一個成員函數(shù)。但是又很想復(fù)用這些代碼瞬哼。寫一個公共的函數(shù)坐慰,可以這是一個解決方法,不過函數(shù)用到的一些變量赞咙,就可能成為公共的全局變量糟港,再說為了復(fù)用這么一片代碼,就要單立出一個函數(shù)速和,也不是很好維護颠放。這時就可以用仿函數(shù)了,寫一個簡單類碰凶,除了那些維護一個類的成員函數(shù)外欲低,就只是實現(xiàn)一個operator畜晰,在類實例化時凄鼻,就將要用的,非參數(shù)的元素傳入類中野宜。這樣就免去了對一些公共變量的全局化的維護了匈子。又可以使那些代碼獨立出來虎敦,以便下次復(fù)用游岳。而且這些仿函數(shù)胚迫,還可以用關(guān)聯(lián)访锻,聚合期犬,依賴的類之間的關(guān)系避诽,與用到他們的類組合在一起,這樣有利于資源的管理(這點可能是它相對于函數(shù)最顯著的優(yōu)點了)鲤妥。