1

私の教科書では、 + 演算子のオーバーロードの例を示しています

Sales_item operator+ (const Sales_item& lhs, const Sales_item& rhs)
 {
   Sales_item ret(lhs);
   ret += rhs;
   return ret;
 }

しかし、リンクされたリストで試してみると、0 または 1 つの引数しかとれないことがわかります。

私が見ていないのは何ですか?2つの引数を取ることができない場合、どうすれば2つのオブジェクトを追加できますか?

4

1 に答える 1

1

operator+ がメンバー関数である場合、operator+ を呼び出すクラスのオブジェクトは左側の引数であるため、2 つの引数は必要ありません。しかし、あなたはすでにそのような演算子を持っています: operator+=. chris と nims によって提案されたように、operator+ を Sales_item クラスの外に移動します。

于 2013-10-01T04:35:12.823 に答える