两个函数重载,必须满足:1. 函数名相同,2. 参数列表不同
所谓参数列表不同,意思是:参数类型、参数个数、参数顺序,三者至少有一样不同
注1:参数名不算在内,因为编译函数名时会忽略形参名字
注2:如果参数列表相同,返回值类型不同,也不能构成重载
原理:函数在编译阶段,编译器会为每一个函数生成一个唯一的新名称,如全局函数 int fun(int num, char ch, string str),生成后的函数名称为 fun_int_char_string,如果是类成员函数,还要在前面加上类名。因此,函数名加参数列表(可能还包括所属类名)构成了函数在整个程序中的唯一标识。