2014-09-23 66 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; 
} 

這似乎相當簡單。