我正在寫一個.hpp文件的類應該接收函數作爲其參數之一,並將其存儲在成員變量,到目前爲止我的代碼如下所示:C++類接受任何類型的函數作爲參數
template<typename Function> class myClass
{
public:
myClass(Function function) : pvFunction(function) {}
//Functor operator
double operator() (double x) const{
return pvFunction(x+4);
}
private:
Function pvFunction
}
該程序看起來毫無意義,因爲它是,它返回的值現在不重要。我只是想弄清楚如何將一個函數傳遞給這個類並使用它的函數運算符。唯一的問題是:
1)我不知道這個類的定義是否正確,這是接受任何類型的函數作爲參數傳遞給這個類的對象的正確方法。
2)如何在我的程序中創建此類的實例?如何將函數傳遞給新對象然後調用它?
去過這個相當長的一段時間,似乎無法弄清楚
編輯:
在我的程序文件,main.cpp中,該代碼會收到一個錯誤:
double function(double);
int main()
{
myClass<double> myClassObject((function));
return 0;
}
double function(double x)
{
return (x+3.0);
}
查看['boost :: function <>'](http://www.boost.org/doc/libs/1_51_0/doc/html/function.html)的實現以獲取靈感。 –
你真的是指「任何類型」或「任何類型匹配某個參數類型列表和返回類型」嗎? – juanchopanza