我有一段代码需要传递一个函数对象(功能)。我不能使用函数指针,因为我需要存储一些状态变量。假设我有很多状态变量。可以通过引用传递函数对象吗?我只看到函数对象通过值传递。这是我的代码将是什么样子:可以通过引用传递函数对象吗?
struct FunctionObject {
double a, b, x, y;
double operator() (int v, int w) {....}
};
template <class T>
Class MyClass {
T& func;
.....
public:
MyClass(T& func):func(func) {}
.....
};
是的,这是完全正常的。请注意,函数对象的生命周期会超过引用它的生命周期。当然,这个建议并不是唯一的功能对象。 –