2013-12-14 105 views
-3

我有一個存儲當前低數字的程序。對象是每次出現新號碼時存儲低位號碼。所以說我開始功能,第一個數字將等於低數字。但一旦功能被調用後又重新調用它的問題重新開始並且低被刪除。有一種方法可以在函數被再次調用時保留函數值嗎?或者是否有人知道在保持班級功能的同時做到這一點的更好方法?數字遊戲C++

感謝

double a; 

class rff{ 

public: 
    void FGH() 
    { 
     double b=0; 

     cout<< "pick a number"<<endl; 
     cin>>a; 
     b=a; 
     cout << "yournum"; 
     cout << "LAST num:" << a<< endl; 
     cout << "Low num:" << b << endl; 

     cout <<"'pick another number"<<endl; 
     cin>>a; 
     if (a < b) 
     { 
      b = a; 
     } 
     cout << "yournum"; 
     cout << "LAST num:" <<a<< endl; 
     cout << "Low num:" << b<< endl; 
     cin.get(); 
    } 

}; 

和源CPP

int main(){ 
    rff ws; 
    ws.FGH(); 
    ws.FGH(); 
    ws.FGH(); 

    cin.get(); 
    cin.get(); 
    return 0; 
} 
+0

關於縮進的summat –

+0

這是一個錯誤....但我想程序員作爲你自己永遠不會犯錯XD – user3089755

+0

我通常稱之爲呼吸 –

回答

0

。在你的代碼中的許多錯誤。在這裏,我建議可能更好一些(未經測試,所以你可能需要適應它)。

class MinimalChecker { 

private: 
    double minValue; 

public: 
    void MinimalChecker() { 
     minValue = std::numeric_limits<double>::max(); 
    } 

    void check() 
    { 
     double userInput = 0; 

     cout << "Pick a number" << endl; 
     cin >> userInput; 
     if (userInput < minValue) 
     { 
      minValue = userInput; 
     } 
     cout << "Number typed:" << userInput << endl; 
     cout << "Lower number:" << minValue << endl; 
     cin.get(); 
    } 
}; 

變化:

  1. 較好的一類/方法的名稱,更容易理解
  2. 沒有更多的全局變量。只有當用戶第一次輸入數字時才存儲最小值的班級成員。它在構造函數中被C++中的double類型允許的最大值初始化。
  3. 號碼只被用戶一次詢問。如果你不這樣做,每次運行舊的FGH()函數時,較低的數字將被無條件覆蓋。