16.5 函式物件
阿新 • • 發佈:2020-08-23
很多STL演算法都使用函式物件——函式符。
### 函式符是可以以函式方式與( )結合使用的任意物件。
### 這包括函式名、指向函式的指標和過載了( )運算子的類物件(即定義了
### operator()()的類)
過載的( )運算子使得能夠像使用函式那樣使用物件。
### 對於for_each函式,它的第三個引數可以是常規函式,也可以是函式符
### 這涉及到該引數的宣告問題。
### 事實上該引數使用了模板來解決宣告函式指標時涉及到的需要宣告引數型別而容器可包含任意型別的
### 矛盾。
###
template<class InputIterator, classFunction> Function for_each(InuptIterator first, InputIterator last, Function f);
### 對於不同的函式呼叫,Function引數可以表示具有過載的( )運算子的類型別,或是函式型別。
### 最終,for_each( )程式碼將具有一個使用f( )的表示式。
- 實參是函式指標,而f( )呼叫該函式
- 實參是物件,而f( )將等價於擁有過載( )運算子的物件呼叫此過載方法