template<typename T,void(*f)(T &v)> void foreach(T array[],unsigned size) { for (int i = 0; i < size; ++i) { f(array[i]); } } template<typename T> void inc(T &v){++v;} template<typename T> void dec(T &v){--v;} template<typename T> void print(T &v){cout<<" "<<v;} int main(int argc, char const *argv[]) { /* code */ int array[]={1,2,3,4,5,1,2,6,7}; foreach<int,print<int>>(array,9); cout<<endl; foreach<int,inc<int>>(array,9); foreach<int,print<int>>(array,9); cout<<endl; foreach<int,dec<int>>(array,9); foreach<int,print<int>>(array,9); cout<<endl; system("pause"); return 0; }
转载于:https://blog.51cto.com/3754839/1401717