我正在尝试将Function参数设为具有多个参数的函数
此First Function的参数是只有一个参数的函数
第一个功能:
void execute_and_time(const string& method_name, double(method)(double), double num)
此第二个函数的参数是一个带有2个参数的函数,这会导致错误,如:
prog.cpp:50:65: error: expected ',' or '...' before '(' token
void execute_and_time2(const string& method_name, double(method)((double),(double)), double num, double p) {
第二功能:
void execute_and_time2(const string& method_name, double(method)((double),(double)), double num, double p)
答案 0 :(得分:2)
当我这样写时,它对我有用:
void execute_and_time(const string& method_name, double(method)(double), double num)
{
double test = method(num);
}
void execute_and_time2(const string& method_name, double(method)(double,double), double num, double p)
{
double test = method(num, p);
}
您似乎需要删除功能周围的额外括号。参数类型(即double
)。
您应该将函数参数编写为实际的函数指针,但是,如下所示:
void execute_and_time(const string& method_name, double(*method)(double), double num)
{
double test = method(num);
}
void execute_and_time2(const string& method_name, double(*method)(double,double), double num, double p)
{
double test = method(num, p);
}
注意*method
。