所以我正在研究基本的类构造函数。问题是,当我使用点运算符查找我的Horse对象的速度时得到的答案几乎没有道理,我想知道出了什么问题以及如何纠正它?

class Horse{
      public:
      string sName;
      double dDist;
      double dTime;

      //constructor
      Horse(string sHorseName, double dDistance, double dSecs){
      sName = sHorseName;
      dDist = dDistance;
      dSecs = dTime;
      }

      double dSpeed(){
             return (dDist/dTime);
      }


      };



     int main(){
        Horse Horse1("frankel", 11.40, 122);
        cout << Horse1.dSpeed() << " m/s. " << endl;
        cout << Horse1.sName << endl;
        return 0;
        }


程序给出的答案是5.95461e + 306,这显然是错误的。为什么我得到这个答案?

最佳答案

您在dSecs = dTime;上遇到未定义的行为,因为dTime从未初始化。在那之后,所有的赌注都关闭了。

您可能提到了dTime = dSecs

08-16 07:51