函数对象
函数对象是类似于函数的对象,就是具有operator()的对象
#include <algorithm> #include <iostream> using namespace std; void test(int i) { cout << "hello: " << i << endl; } class funobj { const char *m_msg; public: funobj(const char *msg) : m_msg(msg) {} void operator()(int i) { cout << m_msg << ": " << i << endl; } }; template <typename Iter, typename UnarFunc> void myfor_each(Iter begin, Iter end, UnarFunc fun) { while (begin != end) { fun(*begin); //fun.operator()(*begin); ++begin; } } int main(int argc, char* argv[]) { int a[5] = {0, 1, 2, 3, 4}; // for_each(a, a+5, test); // for_each(a, a+5, funobj<int>("jjdd")); myfor_each(a, a+5, test); funobj obj = funobj("jjdd"); myfor_each(a, a+5, obj); return 0; }
posted on 2014-04-13 15:24 FlowingCloud 阅读(172) 评论(0) 编辑 收藏 举报
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步