コードに次の行がある場合
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。