示例:
#include <iostream>#include <string>using namespace std;class MyPrint{public://重载的运算符是“()”,(string text)是参数列表。void operator()(string text){cout << text << endl;}};void test01(){//重载的()操作符 也称为仿函数MyPrint myFunc;myFunc("hello world");}class MyAdd{public://重载的运算符是“()”,(int v1, int v2)是参数列表。int operator()(int v1, int v2){return v1 + v2;}};void test02(){MyAdd add;int ret = add(10, 10);cout << "ret = " << ret << endl;//MyAdd()是匿名对象,当前行执行完,立即被释放。cout << "MyAdd()(100,100) = " << MyAdd()(100, 100) << endl;}int main() {test01();test02();system("pause");return 0;}由于使用起来非常类似于函数的调用,因此称为仿函数。