const和引用的问题

vcgaoshou 2012-09-18 02:51:48
函数f如下
void f(int& a){

}
当调用该函数,实参是常量时,比如f(5),编译出错,提示
cannot convert parameter 1 from 'const int' to 'int &'
这一错误可以理解,但是将函数f改为
void f(const int& a){

}
调用不变 ,仍然是f(5),则编译正确
这种现象在引用为其他类型时,同样出现
这是什么道理,编译程序是如何处理这一过程的
...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangleixw 2012-09-18
  • 打赏
  • 举报
回复
对于常量引用const int& a,引用的类型不匹配的话,C++会自动使用临时变量,函数的效果就是跟按值传递是一样的。
5的类型正确,但他不是左值,所以会类型不匹配吧。
baichi4141 2012-09-18
  • 打赏
  • 举报
回复
常量引用可以使用临时对象,非常量引用不能指向临时对象,仅此而已

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧