123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- //4.5.6 函数调用运算符重载
- //⚪函数调用运算符 () 也可以重载
- //⚪由于重载后使用的方式非常像函数的调用,因此称为仿函数
- //⚪仿函数没有固定写法,非常灵活
- #include <iostream>
- //打印输出类
- 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;
- }
|