1

コードに次の行がある場合

int a=6, c=1;
int& b=a;

では、どのような影響を与えるか

(int&) b=c

cの値を持っていますか?

4

1 に答える 1

3

bはすでにint&- あなたはそのように宣言しました。(int&) bと同じですbあなたのキャストは意味がありません。b = c;(見落としたセミコロンを追加した後)と同じです。

C++ 参照は、複数の変数を参照して移動することはありません。常に、初期化された変数を参照します。に現在または将来b = c;の影響はありませんc

ただし、実際には、何らかの理由で変数の初期化に失敗し、その値を使用するため、コードには未定義の動作があります。c

最初の行がint a = 0, c = 1;未定義の動作を回避するように設定されていた場合、コードの効果は1(の値c) をa(そしてもちろん、そのエイリアスにも) 代入することになりますb

于 2013-10-30T15:05:12.970 に答える