我正在開發一個基於距離和速度計算時間的程序,以及何時將從點a到點b取而代之的最終時間獲得100英里我得到南或inf取決於我的班級如何設置。有人能幫助我嗎?我班的將變量打印爲nan或inf而不是實際值
部分:
class Trip
{
private:
string chicago, illinois, destCity, destState;
double distance, time, rate;
public:
Trip()
{
chicago = "Chicago";
illinois = "Illinois";
destCity = "";
destState = "";
distance = 0.0;
time = 0.0;
rate = 0.0;
}
Trip(string city, string state, double distance)
{
chicago = "Chicago";
illinois = "Illinois";
destCity = city;
destState = state;
distance = 0.0;
time = 0.0;
rate = 0.0;
}
這是一個構造函數是什麼樣子在我的主要方法:
Trip atlanta("Atlanta", "Georgia", 587);
,然後這裏有一些突變的方法,可能是問題的一部分:
void Trip::setRate(double mph)
{
mph = rate;
}
void Trip::calcTime()
{
time = distance/rate;
}
現在如果我成立了我的課像這樣
this->city = "";
this->distance = 0.0;
當我使用accesor方法來檢索時間,距離等
是打印爲「南」但如果我有我的課設置喜歡它
city = "";
distance = 0.0;
然後我得到「INF」。 當我調試程序時,trip元素顯示出所有的變量都是0,即使我使用構造函數將值傳遞給類成員。我不知道發生了什麼問題。
確保'rate'總是一個非0的值 – Keugyeol
@DBR:看看你的'setRate()'函數,並詢問那個分配正在做什麼。 – Blastfurnace