仿函数 ( 函数对象 ) 详解
在C语言中我们是如何实现函数的传递呢? 没错就是函数指针! template <class T> void Say (T a) { cout << a << endl ; } void All_Fuc ( int arr[], int len, void (*say)( int )) { for ( int i = 0 ; i < len; i++) say(arr[i]); } int main () { int arr[ 5 ] = { 1 , 2 , 3 , 4 , 5 }; All_Fuc(arr, 5 ,Say); return 0 ; } 在C++中我们又可以如何去实 现仿函数呢? 那就是仿函数(函数符、函数对象). 如何实现呢? 如果我们在一个类中重载了()运算符。那么这个类的对象就可以像调用函数一样去调用 。 template < class T > class Say { public : void operator () (T a) { cout << a << endl ; } }; template <class T> void All_Fuc ( int arr[], int len,T func) { for ( int i = 0 ; i < len; i++) func(arr[i]); } int main () { int arr[ 5 ] =