0

编译器在第 3 行说无效初始化 我想创建对i的引用,它告诉编译器有人想要更改i,我想这件事是随着新版本的编译器出现的,因为我在大多数书中都找到了这个代码。

int main(){
 const int &i=10;
 int &j=1;
 cout<<j;
 return 0;
 }
4

2 回答 2

2

这个:

int &j=1;

无效,因为您正在从常量值(由于显而易见的原因无法修改)创建非常量引用(这将允许您修改所指对象)。

改为这样做:

const int &j=1;

此外,声明的行i没有意义。只需删除它。

于 2013-04-28T03:30:50.240 回答
0

int除了在下一行的问题中缺少一个之外const &i=10;,您正在创建一个不是的引用const(即允许更改它所引用的内容)并且数字1是一个常量。您会在以下代码中遇到同样的问题:

const int i = 1;
int &ri = i;

原因应该很明显。

于 2013-04-28T03:31:14.533 回答