C++函数重载原理
2016-04-26 01:21
507 查看
什么是函数重载?为什么要用函数重载了?
1.函数重载就是两个以上的函数具有相同的名字不同的形参的类型、个数、顺序。
#include <iostream>
using namespace std;
void paly_basketball(int a)
{
cout<<a<<endl;
}
void paly_basketball(int a,int b,int c)
{
cout<<a<<b<<c<<endl;
}
void paly_basketball(int a,int b)
{
cout<<a<<b<<endl;
}
int main()
{
paly_basketball(2,3);
paly_basketball(1);
paly_basketball(4,5,6);
return 0;
}
注意:函数重载遵守匹配原则。防止二义性。
2.比如打篮球、打羽毛球、打桌球,都有着相似的动作。但运动的方式不一样。函数重载同理,其目的是为我们方便使用,方面记忆。
其实C++函数重载底层实现原理是C++利用name mangling(倾轧)技术,来改名函数名,区分参数不同的同名函数。
1.函数重载就是两个以上的函数具有相同的名字不同的形参的类型、个数、顺序。
#include <iostream>
using namespace std;
void paly_basketball(int a)
{
cout<<a<<endl;
}
void paly_basketball(int a,int b,int c)
{
cout<<a<<b<<c<<endl;
}
void paly_basketball(int a,int b)
{
cout<<a<<b<<endl;
}
int main()
{
paly_basketball(2,3);
paly_basketball(1);
paly_basketball(4,5,6);
return 0;
}
注意:函数重载遵守匹配原则。防止二义性。
2.比如打篮球、打羽毛球、打桌球,都有着相似的动作。但运动的方式不一样。函数重载同理,其目的是为我们方便使用,方面记忆。
其实C++函数重载底层实现原理是C++利用name mangling(倾轧)技术,来改名函数名,区分参数不同的同名函数。