$ 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)不太滿意。 –