2013-12-14 53 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()函数时,较低的数字将被无条件覆盖。