我正在编写一个基本的类程序,我已经完成了所有运算符重载,现在我想尝试重载所有的运算符。我也会尝试+,==,!=和< <但是现在我对乘法感到困惑。*运算符重载
在测试驱动程序中,用户输入一个因子。我在课堂上定义了这个因子,但不知道如何从驱动程序中给它赋值。有任何帮助?
在运算符重载函数中,我想将该因子乘以对象。 - >该对象有五个组件,它是一个数字列表。总和,长度,平均值,最小值和最大值。用一个常数乘以一个对象的目的是产生一个与第一个相同的类,除了列表中的每个数字已经乘以因子。为了达到这个目的,所有需要做的事情就是将总和乘以系数,将新的总和除以旧的长度以得到新的平均值,然后将最小值和最大值乘以因子。
这里是我的过载至今:
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