用模板函数与函数指针完成行为参数化
函数模板:参数类型、返回值类型不具体指定,用一个虚拟的类型代表,主要特点是通用性强。
函数指针:指向函数的指针。
行为参数化:功能函数作为参数,实现不同的功能只需要传入不同的函数。
//main.cpp
#include <iostream>
using namespace std;
//求最大值模板函数
template <typename numType>
numType myMax(numType a,numType b){
return (a>b)?a:b;
};
//求最小值模板函数
template <typename numType>
numType myMix(numType a,numType b){
return (a<b)?a:b;
};
//行为函数作为参数控制行为
template <typename numType>
numType myTest(numType a,numType b,numType (*f)(numType,numType)){
return f(a,b);
}
int main(void){
//结果为5,3.3,b
//int
cout<<myTest(5,3,myMax)<<endl;
//double
cout<<myTest(5.1,3.3,myMix)<<endl;
return 0;
}