我正在编写一个基本的类程序,并且在没有运算符重载的情况下完成了这一切,现在我想尝试重载我所有的运算符。我还将尝试 +、==、!= 和 <<,但现在我对乘法感到困惑。
在测试驱动程序中,用户输入一个因素。我在类中定义了这个因素,但不知道如何从驱动程序中为其分配一个值。有什么帮助吗?
在运算符重载函数中,我想将该因子乘以对象。--> 对象有五个组成部分,即一个数字列表。总和、长度、平均值、最小值和最大值。将一个对象乘以一个常量的目的是产生一个与第一个类相同的类,除了列表中的每个数字都乘以因子。为了达到这个目的,所有需要做的就是将 Sum 乘以因子,将新的 Sum 除以旧的 Length 得到新的 Mean,然后将 Min 和 Max 乘以因子。
到目前为止,这是我的超载:
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;
最后,我在课堂上定义了“因素”,在“私人”下——如果有错请告诉我。