回答編集履歴
2
ちょっと修正
    
        answer	
    CHANGED
    
    | 
         @@ -3,9 +3,19 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            それは `operator +=` だったのではないだろうか? ……とか思います.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            演算子のオーバーロードは特にその字面と異なる動作が実装されていると「???」って混乱する元になりますので,
         
     | 
| 
       6 
     | 
    
         
            -
            特殊な理由が無いなら 
     | 
| 
      
 6 
     | 
    
         
            +
            特殊な理由が無いなら,ふつーの(intみたいな)型と同様の意味を持つ処理にしておくと良いでしょう.
         
     | 
| 
       7 
7 
     | 
    
         
             
            ( `a+b` って書いてるの見て, a の中身が変わるとは思わないよね.)
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
            また,ごく普通に演算子を使う式を書いてたら「それこの型には書けないから.残念.」とか言われると不便なので,
         
     | 
| 
      
 10 
     | 
    
         
            +
            これもまた,特殊な理由が無いならば,ふつーの型と同様に処理を書ける形に実装しておくと良いでしょう.
         
     | 
| 
      
 11 
     | 
    
         
            +
            例えば int 等では以下のように書けますが,自身の型での演算でこれを禁止する理由が特に無いならば,これができる方が素直というか.
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            ```C++
         
     | 
| 
      
 14 
     | 
    
         
            +
            int a = 5;
         
     | 
| 
      
 15 
     | 
    
         
            +
            int b = (a+=5) + 7;  //operator+= が aへの参照 を返してくれないとこれができない
         
     | 
| 
      
 16 
     | 
    
         
            +
            ```
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       9 
19 
     | 
    
         
             
            ---
         
     | 
| 
       10 
20 
     | 
    
         | 
| 
       11 
21 
     | 
    
         
             
            `return *this;` を書く話については,
         
     | 
1
要らん文字を削除
    
        answer	
    CHANGED
    
    | 
         @@ -3,7 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            それは `operator +=` だったのではないだろうか? ……とか思います.
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            演算子のオーバーロードは特にその字面と異なる動作が実装されていると「???」って混乱する元になりますので,
         
     | 
| 
       6 
     | 
    
         
            -
            特殊な理由が無いなら「ふつーの( 
     | 
| 
      
 6 
     | 
    
         
            +
            特殊な理由が無いなら「ふつーの(intみたいな)型と同様に書けるようにしとく」のが良いでしょう.
         
     | 
| 
       7 
7 
     | 
    
         
             
            ( `a+b` って書いてるの見て, a の中身が変わるとは思わないよね.)
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
            ---
         
     |