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;}

原文链接: https://www.cnblogs.com/kyleada/archive/2011/07/24/2115368.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/29250

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午6:40
下一篇 2023年2月8日 上午6:41

相关推荐