第一个::
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/