C ++ Primer练习2.27 [第5版]

时间:2016-08-06 13:10:01

标签: c++ reference declaration qualifiers

我正在从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 ++语言开始的。

1 个答案:

答案 0 :(得分:1)

带有限定符(int)的类型说明符(const)属于声明中的所有声明符

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

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

int &r = 0;

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

但是你可以写

int &&r = 0;
相关问题