首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个引用的有关问题

2012-03-03 
一个引用的问题#includeiostreamusingnamespacestdintmain(){intival1024int&refvalivalintb10int

一个引用的问题
#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是可以修改的,这样就会出错

热点排行