2014-09-23 78 views
1

我有一个函数,它有一个名为static const int initial_var = some_var的变量,以便在后续运行函数时,initial_var保证不会更改。但问题是可能需要调用不同的函数,因为initial_var用于计算,所以这可能会导致问题。可能需要引用不同变量的局部静态const变量

func()旨在对不同变量进行操作,所有变量都命名为some_var。他们的状态需要记住,所以我使用了一个静态常量变量,但是这只会记住一个变量的状态。

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 
} 

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

+0

请再试一次以解释问题,你的描述没有任何意义(对我来说)无论如何 – 2014-09-23 05:43:35

+0

这将是一个很好的包括一个完整的程序,显示问题(并解释你期望的输出) – 2014-09-23 05:44:43

+2

如果你想一个函数做不同的事情,这听起来像你实际上需要不同的*函数*。或者,因为您使用C++进行编程,将其抽象为类,并且该类的实例具有不同的数据? – 2014-09-23 05:45:47

回答

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; 
} 

这似乎相当简单。