可能需要引用不同变量的局部静态const变量

时间:2014-09-23 05:42:20

标签: c++

我有一个函数,它有一个名为static const int initial_var = some_var的变量,因此在后续运行函数时,initial_var保证不会改变。然而,问题是可能会为不同的some_var调用该函数,并且因为initial_var用于计算,这可能会搞砸了。

func()适用于所有名为some_var的差异变量。他们的状态需要被记住,所以我使用一个静态const变量,但这只会记住ONE变量的状态。

void func()
{
   static const int initial_var = some_var;
   some_var = initial_var; // This is the part where things may screw up if some_var
                           // is a different variable
}

解决这个问题的优雅方法是什么?

1 个答案:

答案 0 :(得分:0)

你说你需要“他们的状态需要被记住”,所以你可以把它们放在一个数组中。

int array[10]; // 10 elements.
int count = 0;

void storeVariable(int temp)
{
    array[count] = temp;
    count++;

    // Reset if full.
    if(count >= 10)
       count = 0; 
}

这似乎相当简单。