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;
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116664.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • uboot下载

    uboot下载uboot下载地址ftp://ftp.denx.de/pub/u-boot/DNW源码及使用说明下载点击打开链接共分为三种方法:一、从SD卡启动通过wind把SD卡格式化为FAT32模式sudofdisk-l //查看分区信息ddiflag=dsyncoflag=dsyncif=./u-boot.binof=/dev/sdbseek=1启动时按下空格键…

    2022年6月29日
    24
  • 给你个使用NAS私有云服务器的理由

    给你个使用NAS私有云服务器的理由  当我们的电脑硬盘或者手机内存被占满之后,可能很多人第一时间想到的就是用网盘或者U盘来进行扩充,但现如今相对于网盘和U盘更多的人愿意选择和使用外接式硬盘来进行资料备份和存储。是的,虽然外接式硬盘比网盘和U盘更安全,其实那只是你不知道有一种叫NAS存储服务器的情况才会想到外接式硬盘,NAS存储服务器在今年来不断被人们所接受!网盘充当着公有云的角色,NAS存储服务器充当着私有云的角色!  NAS…

    2022年6月29日
    34
  • evaluateJavascript_jquery form

    evaluateJavascript_jquery formhttp://www.position-relative.net/creation/formValidator/demos/demoValidators.html      $(function(){      $(“#enrolment_Form”).validationEngine(“attach”);      va

    2022年10月3日
    0
  • 2021最新Java面经系列整理,持续更新「建议收藏」

    2021最新Java面经系列整理,持续更新。。。欢迎大家关注收藏,一起加油O(∩_∩)O哈~2021最新Java面经系列 系列 内容 地址 框架篇 2021最新Java面经整理|框架篇(一)Spring框架 https://blog.csdn.net/shipfei_csdn/article/details/109530018 2021最新Java面经整理|框架篇(二)SpringMVC框架 https://blog.csdn.net/..

    2022年4月18日
    48
  • VSCode删除整行快捷键[通俗易懂]

    VSCode删除整行快捷键[通俗易懂]ctrl+shift+k

    2022年6月30日
    33
  • Android ListView下拉/上拉刷新:设计原理与实现「建议收藏」

    Android ListView下拉/上拉刷新:设计原理与实现「建议收藏」《AndroidListView下拉/上拉刷新:设计原理与实现》Android上ListView的第三方开源的下拉刷新框架很多,应用场景很多很普遍,几乎成为现在APP的通用设计典范,甚至谷歌官方都索性在AndroidSDK层面支持下拉刷新,我之前写了一篇文章《AndroidSwipeRefreshLayout:谷歌官方SDK包中的下拉刷新》专门介绍过(链接地址:http://bl

    2022年7月22日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号