精慕HU
因为C+11可以使用功能库以简洁和通用的方式来做这件事。语法是,例如,std::function<bool (int)>哪里bool是第一个参数为类型的单参数函数的返回类型。int.我在下面列出了一个示例程序:// g++ test.cpp --std=c++11#include <functional>double Combiner(double a, double b, std::function<double (double,double)> func){
return func(a,b);}double Add(double a, double b){
return a+b;}double Mult(double a, double b){
return a*b;}int main(){
Combiner(12,13,Add);
Combiner(12,13,Mult);}不过,有时使用模板函数更方便:// g++ test.cpp --std=c++11template<class T>double Combiner(double a, double b, T func){
return func(a,b);}double Add(double a, double b){
return a+b;}double Mult(double a, double b){
return a*b;}int main(){
Combiner(12,13,Add);
Combiner(12,13,Mult);}