回答編集履歴

2

ちょっと修正

2022/03/07 02:16

投稿

fana
fana

スコア11663

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

1

要らん文字を削除

2022/03/07 02:09

投稿

fana
fana

スコア11663

test CHANGED
@@ -3,7 +3,7 @@
3
3
  それは `operator +=` だったのではないだろうか? ……とか思います.
4
4
 
5
5
  演算子のオーバーロードは特にその字面と異なる動作が実装されていると「???」って混乱する元になりますので,
6
- 特殊な理由が無いなら「ふつーの(? intみたいな)型と同様に書けるようにしとく」のが良いでしょう.
6
+ 特殊な理由が無いなら「ふつーの(intみたいな)型と同様に書けるようにしとく」のが良いでしょう.
7
7
  ( `a+b` って書いてるの見て, a の中身が変わるとは思わないよね.)
8
8
 
9
9
  ---