コードに次の行がある場合
int a=6, c=1;
int& b=a;
では、どのような影響を与えるか
(int&) b=c
cの値を持っていますか?
b
はすでにint&
- あなたはそのように宣言しました。(int&) b
と同じですb
。あなたのキャストは意味がありません。b = c;
(見落としたセミコロンを追加した後)と同じです。
C++ 参照は、複数の変数を参照して移動することはありません。常に、初期化された変数を参照します。に現在または将来b = c;
の影響はありませんc
。
ただし、実際には、何らかの理由で変数の初期化に失敗し、その値を使用するため、コードには未定義の動作があります。c
最初の行がint a = 0, c = 1;
未定義の動作を回避するように設定されていた場合、コードの効果は1
(の値c
) をa
(そしてもちろん、そのエイリアスにも) 代入することになりますb
。