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

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • XMind使用之快捷键汇总

    XMind使用之快捷键汇总快捷键(Windows)快捷键(Mac)描述Ctrl+NCommand+N建立新工作簿Ctrl+OCommand+O开启工作簿Ctrl+SCommand+S储存目前工

  • hibernateTemplate update 只更新被修改字段

    hibernateTemplate update 只更新被修改字段如果你用hibernateTemplate操作数据库,感觉的确很省代码,一行代码解决数据库增改删查,但当你做到一个功能只更新一个字段,你就有点懵逼了,怎么试就是不行,总的就是下面的异常报错。当你用hibernateTemplate模板去update或者saveOrUpdate某个对象的时候发现报某字段不能为空的异常,而你的封装对象属性里却实做了某字段的修改,一时就蒙了。其实也不难发现,一…

  • Makefile教程(绝对经典,所有问题看这一篇足够了)「建议收藏」

    Makefile教程(绝对经典,所有问题看这一篇足够了)「建议收藏」该篇文章为转载,是对原作者系列文章的总汇加上标注。支持原创,请移步陈浩大神博客:http://blog.csdn.net/haoel/article/details/2886makefile很重要   什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefil…

  • 手机自动刷视频方法教程_自动刷视频软件手机版

    手机自动刷视频方法教程_自动刷视频软件手机版现在手机刷视频赚钱的软件有很多1、淘宝直播2、刷宝短视频3、快手…这些软件都有一个限制,如果不是一直在看视频的话,元宝是不能领取的。也就是说必须不停的刷视频才可以领元宝。但如果人工刷的话

  • Spring Cloud GateWay网关集群搭建「建议收藏」

    Spring Cloud GateWay网关集群搭建「建议收藏」SpringCloudGateWay网关集群搭建1.环境nginx:1.19.0nacos:1.3.1openjdk:1.8.0_181nacos集群:192.168.8.81192.168.8.82192.168.8.832.实现网关注册nacos中心1)配置依赖pom.xml因为是搭建网关集群,每一个网关应用使用的依赖都是一致的2)修改配置文件配置网关服务gatewaya的nacos集群注册中心地

    2022年10月10日
  • springmvc之@ResponseBody 和 @RequestBody 注解的区别

    springmvc之@ResponseBody 和 @RequestBody 注解的区别springmvc之@ResponseBody 和 @RequestBody 注解的区别

发表回复

您的电子邮箱地址不会被公开。

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