コンパイラは、行 3で無効な初期化を言いますiへの 参照を作成していると思います。誰かがiを変更したいことをコンパイラに伝えていると思います。ほとんどの本でこのコードを見つけたので、これは新しいバージョンのコンパイラに付属していると思います。
int main(){
const int &i=10;
int &j=1;
cout<<j;
return 0;
}
これ:
int &j=1;
定数値(明らかな理由で変更できない)から非定数参照(参照対象を変更できる)を作成しているため、有効ではありません。
代わりにこれを行います:
const int &j=1;
また、宣言する行i
は意味がありません。削除するだけです。
int
次の行の問題で anが欠落していることに加えて、const &i=10;
そうではない参照を作成していてconst
(つまり、それが参照するものを変更できるようにする)、数値1
が定数であるということです。次のコードでも同じ問題が発生します。
const int i = 1;
int &ri = i;
その理由は明らかなはずです。