10進数の計算を行うクラスがあります。すべての数学演算子がオーバーロードされています。かなり単純な計算には最適ですが、親を追加する必要がある場合は失敗します。たとえば、次の両方の計算が機能し、正しい結果が得られます。
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.
私はおそらく単純なものが欠けていますが、それを見つけることができません。私は何が間違っているのですか?