读书人

一个引用的有关问题

发布时间: 2012-03-03 15:33:03 作者: rapoo

一个引用的问题
#include <iostream>
using namespace std;
int main()
{
int ival =1024;
int &refval =ival;
int b=10
int &a = b;
int i=42;
const int &r1=42;
const int &r2=r1+i;
cout < < "ival= " < <ival < < ",refval= " < <refval < <endl;
cout < < "r1= " < <r1 < < ",r2= " < <r2 < <endl;
system( "pause ");
return 0;
}

在这个程序里面

int b=10
int &a = b;

而 int i=42;
const int &r1=42;是正确的!

为什么不是const就不能这样引用呢?

是错误的!

[解决办法]
const int &r1=42;
这句实际上是构造了一个临时的const int类对象,即相当于
const int tmp = int(42); const int& r1 = tmp;

int &r1 = 42 是错误的是因为如果能想上面的那样构造一个临时的const对象,而r1是可以修改的,这样就会出错

读书人网 >C++

热点推荐