$ cat double.cc
#include<iostream>
int main() {
int i = 42;
double &r = i;
}
$ g++ double.cc
double.cc: In function ‘int main()’:
double.cc:5: error: invalid initialization of reference of type ‘double&’
from expression of type ‘int’
$
工程!
$ cat double.cc
#include<iostream>
int main() {
int i = 42;
const double &r = i;
}
$ g++ double.cc
$
为什么我们在第一种情况下会出现错误?我知道这是讨论here,但我不知道我明白为什么这不允许,而int
到const double&
被允许?
为什么随机驱动通过downvote没有评论?这是一个很好的问题,尤其是在Moeb研究它并发现一个相关问题后(至少对于Moeb)不太满意。 –