1

私は C++ に関する本を読んでいましたが、参照によって定数を関数に渡す例がありました。

int square(const int& n)
 ...

私はこれのポイントを見ることができませんか?変数に変更を加える予定がない場合は、通常どおり値で渡すだけではどうですか。変数の値を変更できるように、参照渡しの要点ではありません。

4

3 に答える 3

1

おそらく、int には実際の違いはありません。ただし、より大きなデータ型の場合、 const 参照を渡すとパフォーマンスが最適化されます。非常に多くのコーダーは、習慣から値による代わりに const 参照を使用しています。

于 2013-10-13T19:01:43.870 に答える
0

複雑な型の場合、関数に渡すために値のコピーを作成する必要があるため、値渡しは参照渡しよりもはるかにコストがかかります。中央値を計算する関数に大きなベクトルを渡すことを検討してください。本当に新しいベクトルを割り当て、すべての値をコピーし、新しいベクトルで平均を実行してから、割り当てたメモリを解放しますか? 参照渡しにより、割り当て/コピー/解放サイクルが節約されます。

についてintは、問題ありません。実際、ほとんどのプラットフォームでは、値渡しの方が安くなります。

于 2013-10-13T19:03:21.290 に答える
0

参照で渡す場合は、渡すのが「小さい」ものであるポインターのみを渡します。また、オブジェクトは関数にコピーされないため、合計で使用するメモリが少なくなります。

于 2013-10-13T19:04:09.943 に答える