template<typename T>
T integral(T(*pFun)(T), T a, T b, int n)
{
T dx = (b - a) / n;
T s = (pFun(a) + pFun(b)) / 2;
for (int i = 1; i < n; i++) {
s += pFun(a + i * dx);
}
return s;
}
double fun(double x)
{
return x * x + x;
}
int main()
{
double area = integral<double>(fun, 1, 3, 10000);
cout << area;
return 0;
}
C++利用函数指针和模板函数二分法求取方程的根很有效!