#include <iostream>
using namespace std;
int addition(int x, int y)
{
return x + y;
}
int subtraction(int x, int y)
{
return x - y;
}
//============================================//
double addition(double x, double y)
{
return x + y;
}
double subtraction(double x, double y)
{
return x - y;
}
//============================================//
int operation1( int x, int y, int (*function) (int, int) )
{
int a = (*function)(x, y);
return a;
}
//直接把函数指针定义为一种类型func_type
//返回值类型(*自定义函数指针类型名称)(输入变量类型)
typedef int(*func_type0) (int, int);
int operation2(int x, int y, func_type0 func_pointer)
{
int a = func_pointer(x, y);
return a;
}
//直接把函数指针定义为一种类型func_type
//返回值类型(*自定义函数指针类型名称)(输入变量类型)
typedef double(*func_type1) (double, double);
double operation3(double x, double y, func_type1 func_pointer)
{
double a = func_pointer(x, y);
return a;
}
int main(){
int answer1 = operation1(1, 2, addition);
int answer2 = operation2(1, 2, subtraction);
cout << answer1 << endl;
cout << answer2 << endl;
double answer3 = operation3(1.6, 2.8, addition);
cout << answer3 << endl;
return 0;
}
输出结果:
3
-1
4.4