C++ 入门练习 2.27 [第 5 版]
C++ Primer exercise 2.27 [5th ed.]
我正在做 C++ primer 第 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++语言初学者
带有限定符(const
)的类型说明符(int
)属于声明中的所有声明符
const int i = -1, &r = 0;
因此声明符 i
和 &r
具有类型说明符和限定符 const int
。
此外,您可能不会写例如
int &r = 0;
因为临时对象(在本例中为表达式 0)可能不会绑定到非常量引用。
但是你可以这样写
int &&r = 0;
我正在做 C++ primer 第 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++语言初学者
带有限定符(const
)的类型说明符(int
)属于声明中的所有声明符
const int i = -1, &r = 0;
因此声明符 i
和 &r
具有类型说明符和限定符 const int
。
此外,您可能不会写例如
int &r = 0;
因为临时对象(在本例中为表达式 0)可能不会绑定到非常量引用。
但是你可以这样写
int &&r = 0;