1
私が過負荷状態にすると、言うことができます、C++C++の演算子( '+'、 '+ =')
MyClass MyClass::operator+(MyClass _c){
//code here
}
内のクラスのための '+' 演算子は、それが自動的に 'に適用されます+ = '演算子?コンパイラは、より長い同値部分(a + = b < - > a = a + b)の代わりに自動的にそれを置き換えますか?それとも、ランタイム演算子関数ですか?
これはありません。少なくともMSVC++コンパイラは、それが有効でないと考えるようです。 – jumper0x08
'operator + ='を 'operator +'と書くことは非常に高価です - これから一時的なLHSを作成し、RHSを追加して一時的な結果を割り当てます。これは、もう少し簡単な方法で、 'operator + ='と書いて、 'operator +'を実装します。 – Kos
また、従来、演算子+()はオペランドを変更しない(すなわち、a + bはaもbも変更しない)。これは 'const'を使って表現できます。 – Peter