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