函数重载的原理:
编译器为了实现函数重载,默认为我们做了一些幕后工作,编译器用不同的参数类型来修饰不同的函数名,比如void fun(),编译器可能会将函数名修饰成fun,当编译器碰到void fun(int a)时,编译器可能将函数名修饰为fun_int,当编译器碰到void fun(int a,int b)时,可能将函数名修饰成fun_int_int。编译器如何修饰重载的函数名并没有一个统一的标准,所以,不同的编译器可能会产生不同的内部名。
函数重载的条件:
同一个作用域、参数个数不同或参数类型不同或参数顺序不同。