函数的重载

函数的重载即对一个函数名重新赋予它新的含义,使一个函数名可以多用,即一物多用。

求3个数中的最大数

#include<iostream>
using namespace std;
int max(int a,int b,int c);
long max(long a,long b,long c);
double max(double a,double b,double c);
int main()
{
	int i1,i2,i3,i;
	cin>>i1>>i2>>i3;
	i=max(i1,i2,i3);
	cout<<"i_max="<<i<<endl;
	int d1,d2,d3,d;
	cin>>d1>>d2>>d3;
	d=max(d1,d2,d3);
	cout<<"d_max="<<d<<endl;
	long g1,g2,g3,g;
	cin>>g1>>g2>>g3;
	g=max(g1,g2,g3);
	cout<<"g_max="<<g<<endl;	
}
int max(int a,int b,int c)
{
	if(b>a)a=b;
	if(c>a)a=c;
	return a;
}
double max(double a,double b,double c)
{
	if(b>a)a=b;
	if(c>a)a=c;
	return a;
}
long max(long a,long b,long c)
{
	if(b>a)a=b;
	if(c>a)a=c;
	return a;
}
函数根据给出的信息找与之匹配的函数

#include<iostream>
using namespace std;
int max(int a,int b,int c);
int max(int a,int b);

int main()
{
	int a=8,b=-12,c=27;
	cout<<"max(a,b,c)="<<max(a,b,c)<<endl;
	cout<<"max(a,b)="<<max(a,b)<<endl;	
}
int max(int a,int b,int c)
{
	if(b>a)a=b;
	if(c>a)a=c;
	return a;
}
int max(int a,int b)
{
	if(b>a)a=b;
	return a;
}

函数根据参数的个数找匹配的函数。

重载函数的参数个数,参数类型,参数顺序三者中至少有一种不同,函数返回类型可以相同可以不同。

函数重载(Function Overloading)是指在同一作用域内,可以定义多个名称相同但参数个数、类型或顺序不同的函数,编译器根据实参的类型、个数及顺序确定调用哪个函数函数重载可以提高代码的可读性和复用性。 函数重载的规则如下: 1. 函数名称必须相同。 2. 参数个数、类型或顺序必须不同。 3. 函数的返回类型可以相同也可以不同。 注意事项: 1. 函数重载不仅仅是参数数量不同,还可以是参数类型不同,或者参数顺序不同。 2. 仅返回类型不同的函数不能作为函数重载。 3. 函数重载不允许仅通过返回类型的不同区函数。 4. 函数重载可以发生在同一个类中,或者在不同的类之间。 5. 在调用函数时,编译器会根据参数的类型、个数及顺序来决定调用哪个函数。如果没有找到匹配的函数,则会发生编译错误。 下面是一个函数重载的例子: ``` #include <iostream> using namespace std; int add(int a, int b) { return a + b; } double add(double a, double b) { return a + b; } int main() { int x = add(1, 2); double y = add(1.5, 2.5); cout << "x = " << x << endl; cout << "y = " << y << endl; return 0; } ``` 输出结果为: ``` x = 3 y = 4 ``` 在这个例子中,定义了两个名字相同但参数类型不同的函数 add,一个是 int 类型的,另一个是 double 类型的。在调用时,编译器会根据实参的类型来确定调用哪个函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值