53.伪函数与函数绑定器

 1 #include <iostream>
 2 #include <functional>
 3 using namespace std;
 4 using namespace std::placeholders;
 5 
 6 class myclass
 7 {
 8 public:
 9     void add1(int a)
10     {
11         cout << a << endl;
12     }
13     void add2(int a,int b)
14     {
15         cout << a << b << endl;
16     }
17     void add3(int a, int b,int c)
18     {
19         cout << a << b << c <<endl;
20     }
21 };
22 
23 
24 void main()
25 {
26     myclass my1;
27     //函数包装器,包装类成员函数,用于使用
28     //add的指针类型为 (myclass::*)(int a)
29     /*void (myclass::*p)(int a) = &myclass::add;*/
30                     //函数名      对象地址 ,_1(相应位置的参数需要指定)
31     auto fun1 = bind(&myclass::add1, &my1, _1);
32     auto fun2 = bind(&myclass::add2, &my1, 123,_1);
33     auto fun3 = bind(&myclass::add3, &my1, _1, 0, _2);
34     fun1(1000);
35     fun2(100);
36     fun3(1, 3);
37     cin.get();
38 }
原文地址:https://www.cnblogs.com/xiaochi/p/8552873.html