異なる型の左辺値への非 const 参照のバインド
C では、非 const 左辺値参照 (&) をバインドすることはできません例で示すように、異なる型の左辺値以下:
int a; double &m = a; // Error: non-const lvalue reference cannot bind to an lvalue of different type
これは、非定数参照 m が代入中に作成された一時オブジェクトにバインドしようとするためです。非 const 参照は一時変数にバインドできません。
ただし、次の例を考えてください。
const double &m = a; // Valid
この場合、const 参照 m は非 const 左辺値にバインドされており、 int から double への変換は許可されます。これは、const 参照によって基礎となる値が変更されないように保護され、非 const 参照を一時参照にバインドすることで発生する可能性のあるデータ破損の可能性が排除されるためです。
したがって、非 const 参照をバインドしようとすると、異なる型の左辺値を const 参照すると、非 const 参照を一時値にバインドできないため、エラーが発生します。
以上がC で非 Const 参照を異なる型の左辺値にバインドできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。