我正在写一个.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