文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C++零基础教程之std:function函数包装器

2024-12-03 01:44

关注

包装普通函数

  1. #include  
  2. #include  
  3. #include  
  4. using namespace std; 
  5. int Max(int a, int b)  
  6.     return a > b ? a : b; 
  7. void print()  
  8.     cout << "无参无返回值" << endl; 
  9. int main() 
  10.   function<int(intint)> funMax(Max); 
  11.     cout << funMax(1, 2) << endl; 
  12.     function funPrint(print); 
  13.     print(); 
  14.     printData(funMax, 1, 2); 
  15.   return 0; 

包装类的静态方法

  1. #include  
  2. #include  
  3. #include  
  4. using namespace std; 
  5. class Test  
  6. public
  7.     static void  print(int a, int b)  
  8.     { 
  9.         cout << a + b << endl; 
  10.     } 
  11.     void operator()(string str)  
  12.     { 
  13.         cout << str << endl; 
  14.     } 
  15.     operator FuncPTR()  
  16.     { 
  17.         return print; 
  18.     } 
  19. }; 
  20. int main()  
  21.     //包装类的静态方法 
  22.     functionintint)> sFunc = Test::print; 
  23.     sFunc(1, 2); 
  24.     return 0; 

包装仿函数

  1. #include  
  2. #include  
  3. #include  
  4. using namespace std; 
  5. class Test  
  6. public
  7.     void operator()(string str)  
  8.     { 
  9.         cout << str << endl; 
  10.     } 
  11. }; 
  12. int main()  
  13.     //包装仿函数 
  14.     Test test; 
  15.     function funTest = test; 
  16.     test("仿函数"); 
  17.     return 0; 

包装转换成函数指针的对象 (operator的隐式转换)

  1. #include  
  2. #include  
  3. #include  
  4. using namespace std; 
  5. using FuncPTR = void(*)(intint); 
  6. class Test  
  7. public
  8.   static void  print(int a, int b)  
  9.     { 
  10.         cout << a + b << endl; 
  11.     } 
  12.     operator FuncPTR()  
  13.     { 
  14.         return print; 
  15.     } 
  16. }; 
  17. int main()  
  18.     //包装转换成函数指针的对象  (operator的隐式转换) 
  19.     Test object; 
  20.     functionint,int)> funOPE = object; 
  21.     funOPE(2, 3); 
  22.     return 0; 

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯