在C++中,有仿函数Functor的概念,首先要明白,它叫做仿函数,就说明它本身肯定不是一个函数 => 事实上,它是一个类的对象,但是可以像函数一样来进行调用
怎么来理解这句话呢 “仿函数是一个类的对象,但是它可以像函数一样来进行调用”?
是这样的 => 本质是在这个类里面实现一个operator(), 实现这个operator之后呢,这个类就有了类似函数的行为, 此时实例化这个类的一个对象时,我们可以像调用函数一样来调用类的这个实例化对象。 => 这个类就叫做 仿函数类
我们来看一个很直观的例子:
class TestAdd { public: int operator()(int x, int y) const { return x + y; } }; int main() { TestAdd add; // 创建类TestAdd的一个实例化对象 add int addResult = add(1,2); std::count << "Result: " << addResult << std::end1; return 0; }
class TestAdd { public: int operator()(int x, int y) const // 类 TestAdd中实现了operator, 它就是一个方法函数类,operator操作符可以接受任意数量和类型的参数,还可以有返回值 { return x + y; } }; int main() { TestAdd add; // 创建类TestAdd的一个实例化对象 add int addResult = add(1,2); //像调用函数一样去调用这个仿函数类的对象add std::count << "Result: " << addResult << std::end1; return 0; }
标签:函数,int,add,Functor,对象,TestAdd,C++,operator From: https://www.cnblogs.com/wphl-27/p/18546215