函数重载
函数重载(多态)使得能使用多个同名函数。(多态指有多种形态,,允许函数有多种形式;重载指可以有多个同名函数,因此对函数名进行重载,实际为相同作用)
(书籍:《C++ Primer Plus》6th)
函数重载关键:函数的参数列表(特征标)必须不同
1.函数参数类型不同
如下:
void show(int i);
void show(double i);
2.函数参数数目不同
如下:
void show(int i,int j);
void show(int i);
3.相同函数参数类型和数目的情况下,类型先后顺序不同
如下:
void show(int i,double j);
void show(double i,int j);
4.与返回类型无关
如下两个函数声明只能有一个:
void show(int i,double j);
int show(int i,double j);
5.类型引用与类型本身是同一特征标
如下函数声明只能有一个:
void show(int i);
void show(int& i);
6.有无const限定是不同的特征标
如下:
void show(int* i);
void show(const int* i);
7.引用参数的函数重载
void show(int& a1);
void show(const int& a2);
void show(int && a3);
a1 可与 可修改的左值参数 匹配;
a2 可与 可修改左值参数、const左值参数、右值参数 匹配;
a3 可与 左值匹配;
以上重载函数的调用,使用最匹配的函数。例:
int i=1;
const int j=2;
show(i); //使用show(int& a1);
show(j); //使用show(const int& a2);
show(i+j); //使用show(int && a3);