Vì C ++ 11, bạn có thể sử dụng thư viện chức năng để thực hiện việc này một cách ngắn gọn và chung chung. Cú pháp là, vd
std::function<bool (int)>
trong đó bool
kiểu trả về ở đây của hàm một đối số có đối số đầu tiên là kiểu int
.
Tôi đã bao gồm một chương trình ví dụ dưới đây:
// 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);
}
Tuy nhiên, đôi khi, sử dụng chức năng mẫu sẽ thuận tiện hơn:
// g++ test.cpp --std=c++11
template<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);
}
typedef
.