C++constリファレンスを使用してパラメータを渡す

998 ワード

const&intのような形式はC++の定数参照であり,関数パラメータパラメータリストではconstの参照がよく用いられる.
参照の役割は、値の伝達を防止することであり、コード効率を向上させることができ、この設計ポリシーは関数の実行をより速くすることができ、constは関数パラメータの誤修正を防止する値である.1つの関数では、関数の転送時の値の転送は以前から知られていました.つまり、関数呼び出し時に、パラメータにメモリを再割り当てし、実パラメータの値をコピーします.たとえば、次のようにします.
void func(int a,int b)
{
    //...
}
int main()
{
    int aa=3;
    int bb=4;
    func(aa,bb);
    return 0;
}
func()関数では,メモリが再割り当てされ,実パラメータaa bbの値がそれぞれ格納されることが知られていたが,この値伝達のコピーは,パラメータが複雑な構造体である場合,記憶を大幅に浪費する.したがってconstリファレンスを使用すると、パラメータが変更されないことを保証した上で、データの値がコピーを伝達することを防止することができる.
最近、関数テンプレートを見ていると《C++ Primer》( )581 は、汎用コードを記述する2つの重要な原則について言及しています.その1つは、 const が与えた解釈が明らかです.関数パラメータをconstの参照に設定することで、コピーできないクラスに使用できることを保証しています.もちろん、ほとんどのタイプはコピーが許可されていますが、コピーが許可されていないクラスタイプも存在します.