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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQLServer 延迟事务持久性

    SQLServer 延迟事务持久性

    2021年11月26日
    39
  • java之接口[通俗易懂]

    java之接口[通俗易懂]java之接口1、接口的概念2、接口的属性3、接口与抽象类4、静态和私有方法5、默认方法6、解决默认方法冲突7、接口与回调1、接口的概念在java中,接口不是类,而是对符合这个接口的类的一组需求接口用interface声明声明一个Comparable接口可以将接口看成一个没有实例字段的抽象类publicinterfaceComparable{ 声明一个方法,方法的实现由实现这个接口的类来实现方法 接口绝不会有示例字段,在java8以前,在接口中绝对不会实现 方法。 priv

    2022年7月7日
    22
  • Win8.1OS64位oracle11安装配置及PL/SQL Developer怎样连接64位oracle

    Win8.1OS64位oracle11安装配置及PL/SQL Developer怎样连接64位oracle

    2021年12月1日
    40
  • 六种进程间通信方式[通俗易懂]

    六种进程间通信方式[通俗易懂]前言开场小故事炎炎夏日,张三骑着单车去面试花了1小时,一路上汗流浃背。结果面试过程只花了5分钟就结束了,面完的时候,天还是依然是亮的,还得在烈日下奔波1小时回去。面试五分钟,骑车两小时。你看,张三因面试没准备好,吹空调的时间只有…

    2022年10月11日
    0
  • Eclipse最新最简最详细安装教程

    Eclipse最新最简最详细安装教程1、首先打开官方地址(见下面)Eclipse官方下载地址:点击打开官方链接2、点击红箭头指向的红框中的“DownloadPackages”。3、出现新的页面之后往下翻找到并点击红箭头指向的红色矩形的部分EclipseIDEforJavaEEDevelopers项的最右边,点击“64-bit”。4、进入到新的页面之后点击红色箭头指向…

    2022年4月8日
    34
  • java和基岩版区别_我的世界基岩版与Java版有什么区别?「建议收藏」

    java和基岩版区别_我的世界基岩版与Java版有什么区别?「建议收藏」我的世界是一款受到非常多玩家喜爱的沙盒建造游戏,玩家可以在三维世界里做任何自己想做的事情。很多小白玩家分不清基岩版和Java版的区别。为此,小编特意收集了资料给大家分享一下本篇教程,希望能够帮助到大家。本质区别java版Java版顾名思义是使用Java语言编程的,是minecraft的最初版本,一般称之为Java版JE版。基岩版基岩版英文名称为BedrockEdition,使用C++语言编程,…

    2022年7月7日
    28

发表回复

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

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