ハンガリアン記法、結局
ハンガリアン記法についてグダグダ考えた:
結局、使わないことにした。既存コードと関係するところでは使うが、新規では原則使わない。
だけど、変数に接頭辞は使う。
- ポインター変数にはp, 参照変数にはrを付ける。
これは、意味的な接頭辞(アプリケーションハンガリアン)とは真逆で、型でさえない。
僕の個人的な不注意さなのかもしれないが、*, &, ., -> なんかを間違う。foo.some, pFoo->some なら間違える可能性は少ない。
ポインターと参照を特別扱いしたいのは、メモリレイアウトを意識したいから。スタックやオブジェクトのメモリブロックに、実体がまんま乗っている=埋め込まれているのか、それともアドレスだけあるのかでは扱いが違う。ポインター/参照なら、実体が外部にあるので、資源管理にも注意が必要になる。
ポインターも参照も実体は外にあるだが、参照はそれほどに注意しなくてもいい。p付き変数は要注意となる。「小文字p + 大文字」で始まる変数やメンバーは「警告」的な意味合いで使う。