函数重载问题的实质是同名函数之间的问题。
例如:以下三个函数,在C++中都是合法的可存在的,因为他们生成的函数符号是不同的。
int Sum(int a, int b)//?Sum@@YAHHH@Z
{
return a + b;
}
double Sum(int a, int b)//?Sum@@YANHH@Z
{
return a + b;
}
double Sum(double a, double b)// ?Sum@@YANNN@Z
{
return a + b;
}
C++中符号的生成与以下条件有关:1.函数名称 2.返回值类型 3.函数的形参(形参的个数、类型以及顺序)
函数重载的三要素为:同名 不同参 同作用域。