简单说:func(i) 就相当于调用了operator
#include <iostream>
using namespace std;
class A
{
public:
int var;
int operator() (int value) //重载()运算符,传入int的参数,operator()可以传入无限制的参数
{
cout<<"var :"<<var<<endl;
return value > var ? value : var-value;
}
};
int main()
{
int i = -1;
A func;
std::cout << func(i) << std::endl; //实际上调用的是func.operator()(i)这个函数
return 0;
}