値渡し、参照渡し、ポインタ渡しを議論する
■ このスレッドは過去ログ倉庫に格納されています
0096デフォルトの名無しさん
2006/05/07(日) 22:03:39C++の参照渡しはコピーコンストラクタや演算子のオーバーロードのために存在する。
特に、コピーコンストラクタは参照渡しで定義しないと自動的に無限ループだからね。
個人的には、これら以外では参照渡しよりもポインタ渡しを推奨するなあ。
ソースを書いてるときはポインタ渡しの方がタイプ量が若干増えるけど、
後からソースを見たときに、実際に渡しているのが何なのかが
パッと見て区別できるのは結構大きい。
特に「ポインタ不要論」で紹介されている、データの返し先引数として
参照を使うってのは、俺的には最悪。
例えばf(a,b,c,d,e)の呼び出しだけ見てa・b・cは値を渡すだけで
d・eには値が帰ってくるかもしれない、なんてパッと見で分かる奴なぞ
だれもいないだろう。
ポインタにすれば、printf("%d",a)とscanf("%d",&a)の例のように
前者はaを書き換えない、後者はaを書き換える(かもしれない)ってのが
一目瞭然。
■ このスレッドは過去ログ倉庫に格納されています