仿函数
1 /* 内部函数绑定 */ 2 3 /* 引用内部函数绑定机制 */ 4 5 #include<iostream> 6 #include<finctional>// 处理函数 7 8 using namespace std; 9 using namespace std::placeholders; 10 11 // 仿函数 :创建一个函数指针,引用一个结构体内部或者一个类内部的公有函数 12 struct MyStruct 13 { 14 void add(int a) 15 { 16 cout << a << endl; 17 } 18 19 void add2(int a,int b) 20 { 21 cout << a+b << endl; 22 } 23 24 void add3(int a,int b,int c) 25 { 26 cout << a+b+c << endl; 27 } 28 }; 29 30 int main() 31 { 32 MyStruct struct1; 33 34 // _1 代表一个参数 35 // auto 自动变量 当作一个地址来解析,第一种是函数指针 36 // 第二种是数据指针这里当函数指针处理 37 // 第一个参数引用内部函数 38 // 第二个参数是绑定一个实体对象 39 // 第三个是代表有多少个参数 40 auto func = bind(&MyStruct::add,&struct1,_1); 41 42 auto func2 = bind(&MyStruct::add2,&struct1,_1,_2); 43 44 auto func3 = bind(&MyStruct::add3,&struct1,_1,_2,_3); 45 46 47 func(100); 48 49 func2(10,20); 50 51 func3(10,20,30); 52 53 54 cin.get(); 55 return 0; 56 } 57 58 //----------------------------------------------- 59 60 void main() 61 { 62 MyStruct struct1; 63 64 // 创建函数指针 类 结构体 数据私有 代码共享 65 // 函数通过调用,调用需要传递对象名进行区分 66 void (MyStruct::*p)(int a) = &MyStruct::add; 67 }
长风破浪会有时,直挂云帆济沧海
posted on 2015-06-01 21:16 Dragon-wuxl 阅读(141) 评论(0) 收藏 举报
浙公网安备 33010602011771号