C++传递函数指针
2015-12-15 09:40
232 查看
函数指针是一个很好的类型。因此,您可以编写一个函数,它的一个参数是一个函数指针。然后。在(外部)当函数使用的函数指针参数,来间接调用时调用相应的参数的函数的函数。
因为指针在不同的情况下能够指向不同的函数。因此同意调用程序确定要从外部函数中调用哪个函数。
在用函数指针类型的參数调用函数时,參数能够仅仅包括函数地址的对应类型的指针。还能够把函数名作为參数,显示传送函数。
作为參数传送给还有一个函数的函数有时称为回调函数。
演示样例:
因为指针在不同的情况下能够指向不同的函数。因此同意调用程序确定要从外部函数中调用哪个函数。
在用函数指针类型的參数调用函数时,參数能够仅仅包括函数地址的对应类型的指针。还能够把函数名作为參数,显示传送函数。
作为參数传送给还有一个函数的函数有时称为回调函数。
演示样例:
#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; }
相关文章推荐
- C++ Primer 学习笔记_2_高速入口(继续)
- C++操作word:插入文字、图片、表格,设置样式字体
- C语言字节对齐
- C++教材
- 关于C++ cin的问题
- CPP-Templates
- C++primer_拷贝控制之13.26联系控制成员实现类值行为
- C++双向循环链表实现
- c++ 动态规划(重构解).
- c++引入依赖 include (转)
- 黑马程序员--C语言自学笔记---03运算符
- c++ 浅复制与深复制
- C++实现简单的双向链表
- 单链表的操作_二分查找
- 哈夫曼(Huffman)编码问题(C++实现)
- CPP-operator==, <overloading
- c++11 之初
- C++左值和右值
- 小项目集锦博客目录(不断更新,总结)
- C++学习笔记(三)enum