みんなともだち

私がC++でコードを書くときはfriend指定をわりと遠慮なく使う。friend指定は各クラスの依存性を増し、再利用を阻む原因になるとして避けるべきものだというのが一般的な認識のようだが、私の考えは違う。
そもそも、依存は当然ながらあるのだから、どのように依存しているか明示している方が良い。普通にアプリケーションを書いていると、充分に汎用的になるまでひとつのクラスを作り込むことなどそうそうあるわけではないのだ。XPに於いても「使うかもしれない」だけの機能は書かないということは基本である。想定すべき範囲を極端に限定可能という意味でfriend指定は有用であると思う。
もちろん、規模や開発スタイルによってはこの考え方ではうまくいかないケースもあるだろうことはわかるが、少くとも複雑なアクセス指定やら継承関係やらが常にfriend指定よりも良いとは言えないのではなかろうかと思う次第である。
Document ID: 46c80842b22eb1aa1762d3e49fa00023