重载和const形参

Posted bootblack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重载和const形参相关的知识,希望对你有一定的参考价值。

  顶层const不影响传入函数的参数,一个拥有顶层const的形参和无法另一个没有顶层const形参区分开来:

Record lookup(Phone);
Record lookup(const Phone); //重复声明了Record lookup(Phone)

Record lookup(Phone*);
Record lookup(Phone* const); //重复声明了Record lookup(Phone*)

  另一方面,如果形参是某种类型的指针或者引用,则通过区分其指向的对象是常量对象还是非常量对象可以实现函数重载,此时的const是底层的:

Record lookup(Account&); //函数作用于Account的引用
Record lookup(const Account); //新函数,作用于常量引用

Record lookup(Account*); //新函数,作用于指向Account的指针
Record lookup(const Account*); //新函数,作用于指向常量的指针

  

以上是关于重载和const形参的主要内容,如果未能解决你的问题,请参考以下文章

函数的使用

c++重载时const的作用

c++中重载输出操作符,为啥要返回引用

第四周:运算符重载

c++ 拷贝构造函数与赋值运算符重载函数的区别是

JavaSE 方法的使用