#include<iostream>
using namespace std;
template <class T>
class Say {
public:
// 如果加上构造函数,则会先输出ada,再调用仿函数
Say(){
cout << "ada" << endl;
}
void operator()(T a)
{
cout << a << endl;
}
};
template<class T>
void allFunc(int arr[], int len, T func)
{
for (int i = 0; i < len; i++)
func(arr[i]);
}
int main()
{
int arr[5] = {1, 2, 3, 4, 5};
allFunc<Say<int>>(arr, 5, Say<int>());
system("pause");
return 0;
}