我正在編寫一個基本的類程序,我已經完成了所有運算符重載,現在我想嘗試重載所有的運算符。我也會嘗試+,==,!=和< <但是現在我對乘法感到困惑。*運算符重載
在測試驅動程序中,用戶輸入一個因子。我在課堂上定義了這個因子,但不知道如何從驅動程序中給它賦值。有任何幫助?
在運算符重載函數中,我想將該因子乘以對象。 - >該對象有五個組件,它是一個數字列表。總和,長度,平均值,最小值和最大值。用一個常數乘以一個對象的目的是產生一個與第一個相同的類,除了列表中的每個數字已經乘以因子。爲了達到這個目的,所有需要做的事情就是將總和乘以係數,將新的總和除以舊的長度以得到新的平均值,然後將最小值和最大值乘以因子。
這裏是我的過載至今:
Statistician Statistician::operator* (Statistician& temp)
{
Statistician Stat3;
Stat3.newLength = temp.newLength;
Stat3.newSum = (factor * temp.newSum);
Stat3.newMean = (temp.newSum/temp.newLength);
Stat3.newMaximum = (factor * temp.newMaximum);
Stat3.newMinimum = (factor * temp.newMinimum);
return Stat3;
}
這裏還有什麼是在測試驅動程序:
system("CLS");
cout << endl << " Multiply by factor of: ";
cin >> // Input factor
Stat3 = Stat1 * factor;
最後,我在類中定義的 「因子」,在「私人「 - 讓我知道如果這是錯誤的。
你得到什麼錯誤?在你的例子中,除非Factor是Statistician類型的變量,否則你將會遇到編譯器錯誤。運算符重載中的參數是表達式右側的對象,IE Stat1 *因子等同於Stat1.operator *(factor);. – IllusiveBrian