您的位置:首页 > Web前端

reference type in cpp

2009-08-25 20:45 281 查看
为什么引用类型一定要在声明的时候初始化呢,

要想清楚这个问题应该站在编译器的角度去思考问题。

比如 声明一个引用没有初始化

int& r;

int b=333;

r=b; //你说r=b是赋值 还是 初始化引用呢?? 这里有二义性,编译器解决不了问题,所以提前到CODING的时候明确 掉。

还有一个就是 const 也参与类型的声明。

const int a 和 int a 是不同的类型,这里到不是可不可修改的问题。估计在编译器 看来 const int 和 int 属于两种不同的类型。

所以关于const变量在赋值的时候要注意了

比如

int a=33;

cosnt int& b=a;; 这里合法

但是

const int a=9099;

int& b=a; 编译错误,因为编译器 将他们看做两个完全不同的类型

当将一个 变量赋给不同的const变量类型时

比如

int a=33;
const double& b=a;
a=5666;
cout<<a<<endl<<b<<endl;

会输出 5666 和33哦?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐