所以,我想傳遞的功能,那就是在engine.cpp文件,作爲參數,這就是我所做的:傳遞函數作爲參數傳遞給不同的功能在不同的文件
typedef RFun(*wsk)(double, int);
RFun Engine::f_line(double *&values, int howmany)
{
RFun line;
for(int i = 0; i < howmany; i++)
{
line.result_values[i] = (2 * values[i]) + 6;
}
return line;
}
RFun counter(double *&values, int howmany, wsk function)
{
return function(*values, howmany);
}
,現在我想要在其他.cpp文件中調用計數器函數並將f_line函數作爲參數傳遞給它。我怎樣才能做到這一點?
[std :: function](http://en.cppreference.com/w/cpp/utility/functional/function)想起來... –
它看起來像我,就像你打算用'wsk'函數指針傳遞'Engine :: f_iline'。如果是這種情況,由於參數類型不匹配,會遇到困難('double'和'double *&'不相同)並且'Engine :: f_file'是一個成員函數,它與指向函數的指針不兼容。你需要一個指向成員函數的指針。 –
澄清@FrançoisAndrieux所說的話:'&f_line'類型是'RFun(Engine :: *)(double *&,int)',而不是'RFun(*)(double,int)'。 –