登录网站怎么做,wordpress土豆插件,手机制作模板图片的app,wordpress 密码修改概念
函数重载允许在同一作用域内定义多个同名函数#xff0c;但这些函数的参数要满足#xff1a;参数类型、参数个数#xff0c;参数顺序不同#xff08;满足三个中的一个#xff09;#xff0c;才能使用函数重载
#include iostream
using namespace std;// 1…概念
函数重载允许在同一作用域内定义多个同名函数但这些函数的参数要满足参数类型、参数个数参数顺序不同满足三个中的一个才能使用函数重载
#include iostream
using namespace std;// 1. 参数个数不同
void print(int a) {cout 一个整数参数: a endl;
}void print(int a, int b) {cout 两个整数参数: a 和 b endl;
}// 2. 参数类型不同
void print(double a) {cout 一个双精度参数: a endl;
}// 3. 参数顺序不同
void print(int a, double b) {cout [int, double] 顺序: a , b endl;
}void print(double a, int b) {cout [double, int] 顺序: a , b endl;
}int main() {print(5); // 调用一个整数参数的版本print(10, 20); // 调用两个整数参数的版本print(3.14); // 调用双精度参数的版本print(5, 3.14); // 调用[int, double]顺序的版本print(3.14, 5); // 调用[double, int]顺序的版本return 0;
}
编译器如何区分同名函数
编译器通过函数名和参数列表生成唯一的内部标识符称为“名字修饰”因此参数列表不同的同名函数会被视为不同的函数
在使用时编译器会根据传递的函数参数的类型、个数、参数顺序来判断将参数传递给那个函数
函数重载与全缺省之间的歧义
当两个函数一个是无参和一个定义一个缺省值的函数这两个函数是满足函数重载的条件的但在调用时这两个函数会产生歧义编译器不知道调用那个函数从而发生报错