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 }