c++ 函数指针例子
#include "stdafx.h"
#include <iostream>
using std::cout;
using std::endl;
long sum(long a,long b);//声明一个函数求两个数的和
long prodcut(long a,long b);//声明一个函数求两个数的积
long (*fun)(long a,long b);//声明一个函数指针
//把函数的指针作为函数的参数使用的时候 可以实现回调的效果
//定义一个函数 用于求数组内的数据之和或之积
long sum_array(long array[],int len,long (*zhi_he)(long a,long b));
int main(long a,long b){
fun = sum;//函数指针初始化 函数指针也是指针所以必须初始化才能使用
cout<<"当前计算的值为:"<<fun(5,6)<<endl;
fun = prodcut;
cout<<"当前计算的值为:"<<fun(5,6)<<endl;
fun = sum;
cout<<"当前计算的值为:"<<fun(prodcut(5,6),fun(5,6))<<endl;
long need[] = {1,2,5,3,4,6};
cout<<"计算数组内的数据之和:"<<sum_array(need,6,sum)<<endl;
cout<<"计算数组内的数据之积:"<<sum_array(need,6,prodcut)<<endl;
system("pause");
return 0;
}
long sum(long a,long b){
return a+b;
}
long prodcut(long a,long b){
return a*b;
}
long sum_array(long array[],int len,long (*zhi_he)(long a,long b)){
long result = array[0];
for (int i = 1; i < len; i++)
{
result = zhi_he(result,array[i]);
}
return result;
}