标签:
函数返回类型分为
函数的类型是指函数的接口,包括函数的参数定义和返回类型
如 函数double max(double,double);的类型是
double(double,double);
定义方法
typedef 类型 函数类型名 (形式参数表)
如: typedef double functionType(double,double);
使用:
如: functionType max,min,average;
(相当于同时声明了三个函数 double max(double,double);double min(double,double); double average(double,double);)
函数指针是指向函数的指针变量
定义方法
如: double (*fp)(double,double);
functionType *fp;
当函数指针作为函数参数时,可以传递函数的地址,通过参数调用不同的函数。
例子:
1 #include<iostream> 2 using namespace std; 3 //定义functionType函数类型 4 typedef double functionType(double,double); 5 //声明三个函数min max average 6 functionType min,max,average; 7 //定义函数指针fp 8 functionType *fp; 9 //含函数指针的函数callFunction 10 double callFunction(functionType *,double,double); 11 int main() 12 { 13 double a=4.3,b=3.6; 14 cout<<"min = "<<min(a,b)<<"\tmax = "<<max(a,b)<<"\tave = "<<average(a,b)<<endl; 15 //函数指针获取函数地址 16 fp=min; cout<<"*fb min = "<<callFunction(fp,a,b); 17 fp=max; cout<<"\t*fb max = "<<callFunction(fp,a,b); 18 fp=average; cout<<"\t*fb ave = "<<callFunction(fp,a,b)<<endl; 19 cout<<"call min = "<<callFunction(min,a,b); 20 cout<<"\tcall max = "<<callFunction(max,a,b); 21 cout<<"\tcall ave = "<<callFunction(average,a,b)<<endl; 22 23 cin.get(); 24 return 0; 25 } 26 double min(double a,double b) 27 { 28 return a>b?b:a; 29 } 30 double max(double a,double b) 31 { 32 return a>b?a:b; 33 } 34 double average(double a,double b) 35 { 36 return (a+b)/2; 37 } 38 double callFunction(functionType *fp,double a ,double b) 39 { 40 return fp(a,b); 41 }
标签:
原文地址:http://www.cnblogs.com/brock-1993/p/4243076.html