0
我有一个类来做小数计算。我把所有的数学运算符都重载了。它适用于相当简单的计算,但在需要添加父元素时失败。例如,在下面的工作都计算并得到正确的结果:错误'operator *'不匹配
myClass r, a = 100000, b = 2.5, c = 10, d = 30;
r = c/d * a * b;
r = (c/d) * a * b;
,但如果我改变计算r = a * b * (c/d);
编译失败:
error: no match for ‘operator*’ in ‘myClass::operator*(myClass&)((* & b)) * myClass::operator/(myClass&)((* & d))’ in gcc 4.6.2.
我可能失去了一些东西简单,但找不到它。我究竟做错了什么?
我们失去了一些东西很简单:与运营商的代码。 – 2013-03-20 19:44:23
我看着我的水晶球,我看到:你的'operator *'或'operator /'或者不是'const',或者它没有'const'参数。 (注意:这是一个完全疯狂的猜测,实际上我们需要你的操作符的签名才有机会做任何事情,除了做出疯狂的猜测) – Yakk 2013-03-20 19:48:08
你确定你的'operator /'返回一个'const引用'给结果实例? – Porkbutts 2013-03-20 19:48:10