在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算法等。