【发布时间】:2016-08-06 13:10:00
【问题描述】:
我正在做 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++ 语言的初学者。
【问题讨论】:
-
"我是 C++ 语言的初学者。" 那么 Stack Overflow 可能不适合你。
-
你可以通过
std::is_same和decltype查看编译器是否同意你:coliru.stacked-crooked.com/a/c0bb0ba07726c1e6 -
@πάνταῥεῖ 初学者当然可以在这里问初学者问题。只是它们必须是好个初学者问题,与适用于我们其他人的好标准相同。
-
就像
int类型一样,限定符const用于在同一声明语句中定义的所有变量。 -
对初学者(和其他所有人)的提示是避免像
const int i = -1, &r = 0;这样的声明。只需在单独的行上声明每个变量,您不必想知道它的含义。
标签: c++ reference declaration qualifiers