在统计学家类中实现乘数
Implementing a multiplier in a statistician 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
的方式执行您编程的操作。 (请注意,它不需要是友元类,因为它只调用公共函数(
statistician operator *(const statistician& s, double scale)
{
return operator *(scale, s);
}
您正在尝试创建类统计员的副本,但按比例缩放。 类似的东西
statistician operator *(double scale, const statistician& s)
{
statistician result(s);
result.total *= scale;
result.tinyest *= scale;
result.largest *= scale;
return result;
}
成员函数 scaleBy 会将相应的成员变量乘以适当的小数位数。
您不会缩放计数。 如果你的统计学家类有类似方差的东西,你可能会把它乘以尺度的平方。
您是在类内部还是在类外部实现运算符?阅读C++中的操作员,并做出决定!
相关文章:
- 如果没有malloc,链表实现将失败
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 如何正确实现和访问运算符的各种自定义枚举器
- C++Union/Struct位域的实现和可移植性
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 在c++中实现LinkedList时,应出现未处理的错误
- 为左值和右值的包装器实现C++范围
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- 使用GSoap实现ONVIF
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 用于AVX的ln(x)的实现,m256
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 在C++中,如何在类和函数(可能是模板化的)的头中编写完整的实现
- 在统计学家类中实现乘数