函数对象
匿名函数
回调函数
function和bind
#include <iostream>
using namespace std;
using AVE_PTR = double(*)(const double*, const int);
typedef double(*AGE)(const double*, const int);
double average(const double* arr, const int n) {
auto ave = arr[0];
for (auto i = 1; i != n; i++)
ave += arr[i];
ave /= n;
return ave;
}
int main() {
double(*pf)(const double*, const int) = &average;
double a[]{ 1,2,3,4,5 };
AVE_PTR p = average;
AGE p1 = average;
cout << pf(a, 5) << '\t' << average(a, 5)<<"\t"<<p(a,5)<< "\t" << p1(a, 5) << endl;
while (true);
return 0;
}