阅读量:0
在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算法等。