私は constの時は参照を使って、それ以外はポインタを使いましょう派です。中身を読むと、言ってることは、id:Isoparametricさんとほぼ同じ(?)なんですけどね。「いつでも」というタイトルに釣られたw
Hoge* huga(Hoge *pOut, const Hoge &in);
こうしとくと、呼び出し側の見た目が
huga(&a, b);
みたいになるので、アドレスを渡してるほうは、関数内で値が変わる。参照を渡してるほうは、constだってすぐわかる。
‥‥っていうのを最初にバイトで入った会社で知って、それ以来ずっとこのルールで書いてる。
まぁ、これだと戻り値どうするの?って聴かれると結構困るんですけどね。それはまた別の話し。演算子オーバーロードとの兼ね合いもまた別の話し。
とりあえず、ここ数年で困ったことはないと思う。まぁ、ぶっちゃけ統一さえされてれば、どうでもいいんだけど(元も子もない)。
余計ごと
クラスのメンバ変数を参照で持つことは、私んちはそんなにしていません。
イネスさん - みねこあ
(゚∀゚)人(゚∀゚)ナカーマ
initialize とか作るのまで同じだ。shared_ptr なんてリッチ(?)なもの使わずに自前管理ですけどね。