使用常量修饰符引用

Ken*_*nta 3 c++ const reference

第一::

double & val = 66.6;     //illegal
const double & val = 66.6;   //legal
Run Code Online (Sandbox Code Playgroud)

我只是做了一些演示程序,并通过上述概念,但无法确定上述概念的确切需求.在第二种情况下,const究竟在做什么?

第二个::

int nVar = 12;
int &rVar = nVar ;//Ok
double &dVar = nVar ;//Error
const double &cdVar = nVar ;//Ok
Run Code Online (Sandbox Code Playgroud)

为什么第3个语句在第4个语句工作的地方不起作用?

Dav*_*rtz 6

第一种是非法的.您不能将非const引用绑定到临时.

第二是合法的.它创建一个临时的double,初始化为66.6,并对它val进行const引用.

const承诺不通过参考更改值.C++不允许您将非const引用绑定到临时引用,因为这通常是一个错误.

  • @viku在回合制编程中需要它. (2认同)