我有一段代碼需要傳遞一個函數對象(功能)。我不能使用函數指針,因爲我需要存儲一些狀態變量。假設我有很多狀態變量。可以通過引用傳遞函數對象嗎?我只看到函數對象通過值傳遞。這是我的代碼將是什麼樣子:可以通過引用傳遞函數對象嗎?
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) {}
.....
};
是的,這是完全正常的。請注意,函數對象的生命週期會超過引用它的生命週期。當然,這個建議並不是唯一的功能對象。 –