function object 優勢



       既然用函數對象與調用普通函數有相同的效果,爲什麼還有搞這麼麻煩定義一個類來使用函數對象?主要在於函數對象有以下的優勢:

       1. 函數對象可以有自己的狀態。我們可以在類中定義狀態變量,這樣一個函數對象在多次的調用中可以共享這個狀態。但是函數調用沒這種優勢,除非它使用全局變量來保存狀態。呃,面向對象編程。。。全局變量。。。。驚訝

       2. 函數對象有自己特有的類型,而普通函數無類型可言。這種特性對於使用C++標準庫來說是至關重要的。這樣我們在使用STL中的函數時,可以傳遞相應的類型作爲參數來實例化相應的模板,從而實現我們自己定義的規則。比如自定義容器的排序規則。

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章