C++--函数对象(仿函数)

C++--函数对象(仿函数),第1张

函数对象的优点和基本使用
  • 优点:可以有内部属性,可以作为变量进行传递,虽然函数指针同样可以
//函数对象
//函数对象:仿函数,像函数但其实是一个类。

相比函数有很多优点:可以有内部的属性,可以作为一个变量进行传递(函数指针类似) class myAdd //一个仿函数,实现两个整型相加 { public: int count; //统计仿函数调用的次数,如果用普通函数的话,count就只能使用全局变量来实现了。

myAdd() { count = 0; } int operator()(int v1, int v2) { count++; return v1 + v2; } }; void test() { myAdd ma; ma(10, 20); ma(10, 10); ma(10, 30); cout << ma(10, 40) << endl; cout << ma.count << endl; } void printFunObj(int a, int b, myAdd& m) //函数对象,类似于C语言的回调函数,扩展函数接口 { //输出m的二倍值 cout << 2 * m(a, b) << endl; } int main() { test(); myAdd ma; printFunObj(333, 666, ma); return 0; }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/673442.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存