const 一些知识

C++ primer 上是说 “术语:const 引用是指向 const 的引用”
但是接下来又有这样的例子:
观察将引用绑定到不同的类型时所发生的事情,最容易理解上述行为。假如我们编写
      double dval = 3.14;
      const int &ri = dval;
编译器会把这些代码转换成如以下形式的编码:
     int temp = dval;       
     const int &ri = temp;   // bind ri to that temporary
这里的temp并不是const对象啊,请高手解释。。不胜感激

其实这种转换对理解const并没有任何用处,转换的实质只是将一个浮点型转换为一个整型. 引用可理解为别名,上面的两行代码的意思就是将ri作为dval的别名,官方的说法是ri是对变量dval的引用.

const只是一个修饰符,它告诉编译器用它修饰的变量是一个常量,不允许再修改它.这种初始化的右值

非const对象既可以用于初始化const引用,也可以用于初始化非const引用。但是,将const引用初始化为非const对象,需要通过转换来实现,而非const形参的初始化则是精确匹配。

 1 #include <iostream>
2 using namespace std;
3 void fun(int& );//这是两个函数重载
4 void fun(const int& );
5 int main()
6 {
7 int a=0;
8 const int& b=a;//非const也可以用来给const引用初始化
9 const int aa=0;
10 const int& bb=aa;//此处则是const变量还初始化const引用
11 fun(b);
12 const int m=9;
13 fun(m);
14 int c;
15 int& d=c;
16 fun(d);
17 fun(c);
18 fun(9);
19 return 0;
20 }
21 void fun(int& ){cout<<"111"<<endl;}
22 void fun(const int& ){cout<<"222"<<endl;}

posted on 2011-07-24 14:27  kyleada  阅读(224)  评论(0编辑  收藏  举报

导航