我的应用程序让我调用一堆回调,需要知道它们的上一个状态,或者最后一次调用的状态。一个简单的例子是两次连续调用之间的时间差。
我知道c ++中的函数对象是一种通用的方法。但我是一个nOOb,不知道如何设置这个架构。任何帮助或特定的简单代码示例将不胜感激。
答案 0 :(得分:3)
只需创建一个实现operator()的类。例如,
class F {
int state;
public:
int operator()(/*any parameters would go here*/){
return state++;
}
F() : state(0) {}
};
然后,您可以创建可以调用并保留状态的实例。
F f;
f(); //returns 0
f(); //returns 1