所以我正在研究基本的类构造函数。问题是,当我使用点运算符查找我的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
。