函数重载中形参的const

为什么f(int)和f(const int)无法构成重载?

  1. 用const 修饰传值调用的形参,即实参不被修改。然而由于是传递的是实参副本,这个约定是隐式的!
    在函数里,const 有这样的意义:参数不能被改变,所以它其实是函数创建者的工具,而不是函数调用者的工具,而函数重载是函数调用者的操作
  2. 函数在重载的时候,int和const int、const int&、const int &&不能同时存在,实际上一个int传进 就能够代替以上的三个,所以,要么3,要么1

下面这个代码https://github.com/chenshuo/recipes/blob/master/string/StringTrivial.h

可以观察为什么注释掉string &&

posted on 2014-10-12 09:58  __hello world  阅读(145)  评论(0编辑  收藏  举报

导航