我正在为即将到来的考试做运动,有一个棘手的问题:
问题是:
Whats wrong with the code and how would it be correct?
const long limit = 1000L; long &ref = limit;
现在我将其键入为 C++ 代码,发现引用 (&) 是此代码示例中的错误,因此编写 long ref = limit 解决了这个问题。但是我想知道为什么这可以解决问题。为什么是 上面的代码错了吗?
最佳答案
初始代码尝试创建对 const
变量的非常量引用,这是不允许的。由于引用引用原始变量,分配给 ref
会(尝试)修改 limit
的值,这是不允许的,因为 limit
是 const
。
第二个创建一个变量,并使用 const 变量的值对其进行初始化。
您还可以创建对 const 的引用:long const &cref = limit;
关于C++ 棘手的 Const 引用考试任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17011758/