//4.5.6 函数调用运算符重载 //⚪函数调用运算符 () 也可以重载 //⚪由于重载后使用的方式非常像函数的调用,因此称为仿函数 //⚪仿函数没有固定写法,非常灵活 #include //打印输出类 class MYPrint { public: //重载函数调用运算符 void operator()(std::string test) { std::cout << test << std::endl; } }; void MyPrint02(std::string test) { std::cout << test << std::endl; } void test01() { MYPrint myPrint; myPrint("Hello World"); //由于使用起来非常类似于函数调用,因此成为仿函数。 MyPrint02("hello world"); } //仿函数非常灵活,没有固定的写法 //加法类 class MyAdd { public: int operator()(int num1,int num2) { return num1 + num2; } }; void test02() { MyAdd myadd; int ret = myadd(100, 100); std::cout << "ret = " << ret << std::endl; //匿名函数对象 std::cout << MyAdd()(100, 100) << std::endl; } int main() { //test01(); test02(); system("pause"); return 0; }