c++ - 带有常量修饰符的引用

标签 c++ reference constants

第一个::

double & val = 66.6;     //illegal
const double & val = 66.6;   //legal

我只是在做一些演示程序,并通过了上述概念,但无法确定上述概念到底需要什么。 const 在第二种情况下到底做了什么魔法?

第二个::

int nVar = 12;
int &rVar = nVar ;//Ok
double &dVar = nVar ;//Error
const double &cdVar = nVar ;//Ok

为什么第三条语句在第四条语句有效的地方不起作用?

最佳答案

第一个是非法的。您不能将非常量引用绑定(bind)到临时引用。

第二个是合法的。它创建一个临时 double 值,初始化为 66.6,并使 val 成为对它的常量引用。

const promise 不会通过引用更改值。 C++ 不允许您将非常量引用绑定(bind)到临时引用,因为这通常是错误的。

关于c++ - 带有常量修饰符的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14020940/

相关文章:

c++ - 无法将引用从一个类传递到另一个类

PHP - 将类常量值分配给构造函数中的属性

c++ - std::stoi 的版本拒绝任何非数字

c++ - 如何创建外部不可修改的变量?

c++ - 为游戏数据流量添加 SSL 加密是否值得?

c++ - 区分函数模板中的按值传递和按引用传递

c++ - 如何从 T、T& 或 T* 模板参数中获取 T*

java - 在枚举中声明常量

c - 初始化元素不是常量 - C

c++ - Objective C 框架不导出某些类