您的位置:首页 > 编程语言 > C语言/C++

C++传递函数指针

2015-12-15 09:40 232 查看
函数指针是一个很好的类型。因此,您可以编写一个函数,它的一个参数是一个函数指针。然后。在(外部)当函数使用的函数指针参数,来间接调用时调用相应的参数的函数的函数。

因为指针在不同的情况下能够指向不同的函数。因此同意调用程序确定要从外部函数中调用哪个函数。

在用函数指针类型的參数调用函数时,參数能够仅仅包括函数地址的对应类型的指针。还能够把函数名作为參数,显示传送函数。

作为參数传送给还有一个函数的函数有时称为回调函数。

演示样例:

#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];
cout<<"Sum of squares = "<<sum_array(array,len,squared)<<endl;
cout<<"Sum of cubes = "<<sum_array(array,len,cubed)<<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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: