C++ 棘手的 Const 引用考试任务?

标签 c++ reference constants

我正在为即将到来的考试做运动,有一个棘手的问题:

问题是:

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 的值,这是不允许的,因为 limitconst

第二个创建一个变量,并使用 const 变量的值对其进行初始化。

您还可以创建对 const 的引用:long const &cref = limit;

关于C++ 棘手的 Const 引用考试任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17011758/

相关文章:

c++ - 具有两个参数之一作为 constexpr 的内联函数

c++ - Windows上的封包记录

ios - 如果 Swift 按值而不是引用传递,为什么我可以通过将它传递给函数来在 Swift 中操作 UIView 的属性?

python - Matplotlib 中经常使用的一个不寻常的 Python 语法元素

Java:修改作为引用传递的参数

c++ - 我应该使用基类还是子类来访问基类中定义的枚举值/常量?

c++ - 在 C++ 代码中执行 Linux 终端命令

c++ - 如何使用 C++ 编辑文本文件中的一行?

c++ - 在 const 成员函数中返回 C++ 引用

objective-c - Objective-c 中的 const 关键字