剖析C++如何实现重载

xiaoxiao2021-02-28  98

函数重载:在同一作用域类,一组函数的函数名相同,参数列表不同(个数不同/类型不 同),返回值可同可不同。

我们可知在c语言中要使用Add  () 函数实现int和double类型两数相加时会出现如下重定义错误,我们解决这个问题时可能会采用重命名函数名(如:Add_int ()  Add_double()  )。但Add()函数本身就是为了实现相加的功能,因而在c++中为了使用更简洁的办法,引入了一个概念——函数重载。(右图便可编译通过。)

那么我们不免疑惑c++到底是如何实现函数重载来解决这个问题的呢?

在vs2013的项目属性中打开链接器->调试->生成map文件,然后在debug中打开我们发现两个Add()分别被重命名。

我们做一测试加入如下代码

观察map文件发现如图结果:

分析后我们便可以得出结论,c++中通过对函数名重新命名来实现函数重载,其中H测代表int类型,N代表double泪车型,其中命名规则中第一个字母代表返回值类型,余下则为参数类型。

函数重载的好处:用来命名一组功能相似的函数,减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。

转载请注明原文地址: https://www.6miu.com/read-53590.html

最新回复(0)