使用静态函数变量与 class 变量来存储一些状态

Using static function variable vs class variable to store some state

假设我有这样的功能:

void processElement() {
    doSomething(someArray[lastProcessedElement + 1]);
}

问题是,每次调用此函数时,我都需要存储调用 doSomething 的最后一个元素。所以在这里我有两个选择:

第一个解决方案增加了一点我不想要的复杂性。我喜欢保持原样。

我知道第二种解决方案只有在 class 只有一个实例时才有效。

那么使用静态变量方法是一个很好的解决方案吗?多实例class是否有任何在线解决方案? (对于这个特定的数组元素索引问题可以有一个解决方案,但我只是编造的,我说的是为下一次函数调用存储一些值)

您已经明白为什么函数作用域静态是一个坏主意:

only works if that class have only one instance

这是一个糟糕的设计限制。

只需将状态保持为常规 class 成员变量即可。