函数调用运算符 () 也可以重载
由于重载后使用的方式非常像函数的调用,因此称为仿函数
仿函数没有固定写法,非常灵活
#include<iostream>
using namespace std;
#include<string>
class MyPrint
{
public:
//重载函数调用运算符
void operator()(string test)
{
cout << test << endl;
}
};
void MyPrint01(string test)
{
cout << test << endl;
}
void test1()
{
MyPrint myPrint;
myPrint("hello world");//由于使用起来非常类似于函数调用,因此称为仿函数
MyPrint01("hello world");//函数调用
}
//仿函数没有固定写法,非常灵活
//加法类
class MyAdd
{
public:
int operator()(int num1, int num2)
{
return num1 + num2;
}
};
void test2()
{
MyAdd myadd;
int ret = myadd(100,100);
cout << "ret = "<< ret << endl;
//匿名函数对象
cout << MyAdd()(100, 100) << endl;
}
int main()
{
//test1();
test2();
return 0;
}