C++初级练习2.27[第5版]

C++ Primer exercise 2.27 [5th ed.]

本文关键字:5版 练习 C++      更新时间:2023-10-16

我正在做C++入门第5版的练习2.27,我对这个问题感到困惑:

练习:以下哪种初始化是合法的?解释原因。

(c(const int i=-1,&r=0

我得出结论,r是非法的,因为这将是相同的如下:

const int i = -1;
int &r = 0;

但这次github回购表明(c(与以下相同:

const int i = -1;
const int &r = 0;

所以,这与我的答案相矛盾,请给我正确的答案。

附言:我是C++语言的初学者。

带有限定符(const(的类型说明符(int(属于声明中的所有声明符
const int i = -1, &r = 0;

因此,声明符i&r具有类型说明符和限定符const int。此外,你可能不会写例如

int &r = 0;

因为临时对象(在本例中为表达式0(可能未绑定到非常量引用。

但是你可以写

int &&r = 0;