22項 値渡しよりも、リファレンス渡しを使おう
値渡しよりも、リファレンス渡しを使おう
クラスを値渡しすると、リファレンス渡しに比べて余分なコストがかかります。
値を受け取って返すだけの簡単な関数を考えます。
Class returnClass(Class c)
{
return c;
}
例は、3つの余分なコストが含まれます。
1, 引数に渡された値をコピーするため、コピーコンストラクタが呼び出される。
2, 関数が返すオブジェクトを引数cで初期化するため、コピーコンストラクタが呼び出される。
3, 引数cのデストラクタが呼び出される。
リファレンス渡しを使うことで、余分なコストを省けます
const Class &returnClass(const Class &c) { return c; }