zoukankan      html  css  js  c++  java
  • 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;
    }
    


     

  • 相关阅读:
    简单了解Linux文件目录
    解决GitLab的Forbidden和Nginx启动失败
    浅谈apidoc的使用
    Linux安装apidoc
    DevExpress的GridControl的实时加载数据解决方案(取代分页)
    Devexpress使用经验1
    ajax下载文件
    var str = "1,21,".TrimEnd(',');
    MSSQ调优所需用的语句
    js中替换返回json中的空格为&nbsp;
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5047203.html
Copyright © 2011-2022 走看看