C++的函数重载就是静态多态。
静态多态的意思是在编译器确定了多态的具体处理。 函数重载会在编译时,根据调用函数时传入的参数,直接确定要调用哪个重载函数版本。编译阶段就会将之确定好。
函数重载,在同一作用域,定义多个同名函数,但函数入参列表必须不同。在实际代码处理过程中,会在编译阶段根据入参类型决定采用哪个函数。
函数重载实现的底层原理是:编译器是将函数名与入参列表综合处理成实际的函数名。
函数重载的关键:函数名相同,入参列表不同。
函数重载的应用场景:
//简化函数
int add(int a, int b) {return a+b;}
double add(double a, double b) {return a+b;}
//对类的构造函数进行重载,以不同方式构建初始化对象
class Person{
public:
//无参构造
Person() { name = "未知";age = 0; }
//单参数构造
Person(string n) { name = n; age = 0; }
//双参数构造
Person(string n, int a) { name = n; age = a; }
private:
string name;
int age;
};
综上:
**函数重载(静态多态) **
-
Name Mangling;
-
函数名相同,入参列表不同。