函数重载:在同一作用域类,一组函数的函数名相同,参数列表不同(个数不同/类型不 同),返回值可同可不同。
我们可知在c语言中要使用Add () 函数实现int和double类型两数相加时会出现如下重定义错误,我们解决这个问题时可能会采用重命名函数名(如:Add_int () Add_double() )。但Add()函数本身就是为了实现相加的功能,因而在c++中为了使用更简洁的办法,引入了一个概念——函数重载。(右图便可编译通过。)
那么我们不免疑惑c++到底是如何实现函数重载来解决这个问题的呢?
在vs2013的项目属性中打开链接器->调试->生成map文件,然后在debug中打开我们发现两个Add()分别被重命名。
我们做一测试加入如下代码
观察map文件发现如图结果:
分析后我们便可以得出结论,c++中通过对函数名重新命名来实现函数重载,其中H测代表int类型,N代表double泪车型,其中命名规则中第一个字母代表返回值类型,余下则为参数类型。
函数重载的好处:用来命名一组功能相似的函数,减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。