首页 > 代码库 > 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]; 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;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。