记住状态c ++

时间:2012-09-20 13:24:36

标签: c++ function object state

我的应用程序让我调用一堆回调,需要知道它们的上一个状态,或者最后一次调用的状态。一个简单的例子是两次连续调用之间的时间差。

我知道c ++中的函数对象是一种通用的方法。但我是一个nOOb,不知道如何设置这个架构。任何帮助或特定的简单代码示例将不胜感激。

1 个答案:

答案 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