/*
函数调用运算符 () 也可以重载
由于重载后使用的方式非常像函数的调用,因此称为仿函数
仿函数没有固定写法,非常灵活
*/
#include<iostream>
#include<string>
using namespace std;
class MyPrint
{
public:
void operator()(string text)
{
cout << text << endl;
}
};
class MyAdd
{
public:
int operator()(int val1, int val2)
{
return val1 + val2;
}
};
void playObject()
{
//重载()运算符,可以像函数一样调用,也不用使用.运算符
MyPrint myprint;
myprint.operator()("计算机组成原理");
myprint("计算机操作系统");
MyAdd myadd;
int sum = myadd.operator()(10, 20);
cout << "sum=" << sum << endl;
//可以当作匿名函数进行调用
cout << myadd(100, 200) << endl;
}
int main(void)
{
playObject();
system("pause");
return 0;
}