我正在从C ++入门第5版开始练习2.27,我在这个问题上感到困惑:
练习:以下哪项初始化合法?解释原因。
(c)const int i = -1,& r = 0;
我得出结论r是非法的,因为这将与下面相同:
const int i = -1;
int &r = 0;
但this github repo表明(c)与以下相同:
const int i = -1;
const int &r = 0;
所以,这与我的答案相矛盾,请给我正确答案。
P.S。:我是用C ++语言开始的。
答案 0 :(得分:1)
带有限定符(int
)的类型说明符(const
)属于声明中的所有声明符
const int i = -1, &r = 0;
因此,声明符i
和&r
具有类型说明符和限定符const int
。
此外,你可能不会写例如
int &r = 0;
因为临时对象(在本例中为表达式0)可能不会绑定到非常量引用。
但是你可以写
int &&r = 0;