
在C语言中我们知道,函数名是不可以重复的,不可以有相同名称的函数,但是在c++中,我们可以做到有相同名称、功能相同的函数——重载函数。但是,不是说完全一样,一样肯定不行,这里的区别就是参数的不同或者函数类型不同。
#include
using 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,当在传参时会自动调用相同类型的函数。
写个用类调用的代码
#include
using 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
请按任意键继续. . .
看,结果就是这样,不会报错,这就是参数个数不同。你传的几个参,就会自动匹配相应的函数。其实这还和构造函数有关系,下篇博客讲。而且重载函数用在构造函数里也常见。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)