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;}
原文链接: https://www.cnblogs.com/kyleada/archive/2011/07/24/2115368.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/29250
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!