我正在为我的数据结构类(class)编写编程作业,我们正在制作统计学类(class)。我们必须具备的功能之一是能够采用统计列表(计数、总和、最小值、最大值和平均值)并将其乘以某个整数。以下是我到目前为止的具体功能。然而,我不知道该去哪里,因为它似乎很破旧。
statistician operator *(double scale, const statistician& s)
{
scale*s;
return s;
}
附件是 .h 文件,它解释了我正在尝试做的事情。我正在为此 .h 文件编写实现文件,并试图弄清楚如何编写在 .h 文件的注释中定义的统计员运算符*
http://www.cs.colorado.edu/%7Emain/projects/stats.h
感谢您的帮助
最佳答案
您编写的代码看起来可以编译,但会导致无限循环,因为它会调用自身。 scale*s
是operator*(scale, s)
的简写,也就是当前正在定义的函数。您需要将行 scale*s
替换为编译器的婴儿步骤。它看起来像:
statistician operator *(double scale, const statistician& s)
{
statistician result
result.count = /*???*/;
result.total = /*???*/;
/*etc*/;
return result;
}
定义之后,您可能还需要 statistician*double
,它可以像这样简单地执行您作为 double*statistician
编写的程序。 (注意它不需要是友元类,因为它只调用公共(public)函数)
statistician operator *(const statistician& s, double scale)
{
return operator *(scale, s);
}
关于c++ - 在统计学家类中实现乘数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7325844/