使Function参数成为具有多个参数的函数的错误

时间:2015-08-19 22:39:34

标签: c++ function parameters

我正在尝试将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)

1 个答案:

答案 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