在C语言中我们知道,函数名是不可以重复的,不可以有相同名称的函数,但是在c++中,我们可以做到有相同名称、功能相同的函数——重载函数。但是,不是说完全一样,一样肯定不行,这里的区别就是参数的不同或者函数类型不同。
#includeusing namespace std; int add(int a,int b){ return a+b; } double add(double a,double b){ return a+b; } int main() { cout << add(1,2) << endl; cout << add(1.34,2.34) << endl; return 0; }
这就是典型的函数类型不同,一个是int,一个是double,当在传参时会自动调用相同类型的函数。
写个用类调用的代码
#includeusing namespace std; class AA{ private : int a=0; int b=0; int sum; public : void add(){ sum=a+b; } void add(int a){ sum=a+b; } void add(int a,int b){ sum=a+b; } void print(){ cout << "sum=" << sum << endl; } }; int main(){ AA a1; a1.add(); a1.print(); a1.add(1); a1.print(); a1.add(1,1); a1.print(); }
sum=0 sum=1 sum=2 -------------------------------- Process exited after 2.112 seconds with return value 0 请按任意键继续. . .
看,结果就是这样,不会报错,这就是参数个数不同。你传的几个参,就会自动匹配相应的函数。其实这还和构造函数有关系,下篇博客讲。而且重载函数用在构造函数里也常见。



