22項 値渡しよりも、リファレンス渡しを使おう

値渡しよりも、リファレンス渡しを使おう


クラスを値渡しすると、リファレンス渡しに比べて余分なコストがかかります。

値を受け取って返すだけの簡単な関数を考えます。

Class returnClass(Class c)
{
    return c;
}

例は、3つの余分なコストが含まれます。
1, 引数に渡された値をコピーするため、コピーコンストラクタが呼び出される。
2, 関数が返すオブジェクトを引数cで初期化するため、コピーコンストラクタが呼び出される。
3, 引数cのデストラクタが呼び出される。

リファレンス渡しを使うことで、余分なコストを省けます

const Class &returnClass(const Class &c)
{
    return c;
}