operator+
設計することは可能ですか?また、これを可能にするためにクラスC
をオーバーロードするにはどうすればよいですか?
C&& c = c1 + c2;
しかし、これは不可能です:
c1 + c2 = something;
編集: オブジェクトを小文字に変更しました。c1
、c2
およびc
クラスのオブジェクトですC
。&&
論理operator&&
ではなく、右辺値参照です。
たとえば、次のように記述します。
double&& d = 1.0 + 2.0;
は 100% 適切な (新しい) C++ コードですが、
1.0 + 2.0 = 4.0;
明らかにコンパイルエラーです。私はまったく同じことを望んでいますが、代わりに double の、私の class C
.
2 番目の編集: 演算子が C または C& を返した場合、右辺値参照への割り当てだけでなく、c1 + c2 への割り当ても行うことができますが、これは無意味です。ここで const を指定すると無効になりますが、右辺値への代入も無効になります。少なくとも VC++ 2k10 では。では、これはどのくらい2倍になるのでしょうか?