C++函数指针数组的容易使用

C++函数指针数组的简单使用

声明函数指针的数组类似声明一般的指针数组。接上文例子将其改进为使用函数指针的数组,代码如下:

#include <iostream>
using std::cout;
using std::endl;
//函数声明
double squared(double);
double cubed(double);
double sum_array(double array[],int len,double (*pfun) (double));
int main(){
	double array[]={1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5};
	int len=sizeof array/sizeof array[0];
	//定义并初始化函数指针数组
	double (*pfun[2])(double)={squared,cubed};
	cout<<"Sum of squares = "<<sum_array(array,len,pfun[0])<<endl;
	cout<<"Sum of cubes = "<<sum_array(array,len,pfun[1])<<endl;
	return 0;	
} 
//求平方和
double squared(double x){
	return x*x;
}
//求立方和
double cubed(double x){
	return x*x*x;
}
//对数组元素按照函数指针指定的函数处理后求和
double sum_array(double array[],int len,double (*pfun) (double)){
	double total=0.0;
	for(int i=0;i<len;i++)
		total+=pfun(array[i]);
	return total;
}