在C++中,functor是一個可被調用的對象,類似于函數指針。它可以像函數一樣被調用,但是可以擁有更多的狀態信息和行為。在C++中,functor通常是一個重載了函數調用運算符operator()的類。
以下是一個示例實現一個簡單的functor類:
#include <iostream>
class AddFunctor {
public:
AddFunctor(int value) : value(value) {}
int operator()(int x, int y) {
return x + y + value;
}
private:
int value;
};
int main() {
AddFunctor addFunctor(10);
std::cout << addFunctor(5, 7) << std::endl; // 輸出:22
return 0;
}
在上面的例子中,AddFunctor類重載了operator()函數,它接收兩個整數參數并返回它們的和再加上functor中存儲的值。通過創建一個AddFunctor對象并調用它,我們可以像調用函數一樣使用這個functor。
使用functor的好處包括可以存儲狀態信息、可以方便地通過重載operator()函數實現不同行為、可以方便地傳遞給STL算法等。