C++ 函数重载

31 篇文章 10 订阅

C++允许用同一个函数名定义多个函数,而这些函数的参数个数和参数类型可以不相同。这就是函数重载。

注意是个数和类型都能不同

其意义在于,如果想要实现一个功能,但是由于变量类型不同或参数个数不同的情况,需要定义不同名称的功能相同的函数,而函数重载功能可以允许用户只定义一个函数名,这个函数名有多个不同的含义,使得一个函数名可以多用,而在调用该函数时,系统会根据实参类型和个数的不同自动找到与之匹配的函数,然后调用该函数。

所以,函数重载功能的本质是可以只用一个函数名(重载它),但是想要给这个函数名赋予多个不同的含义,还是要定义。比如要实现一个找最大值的功能,但是实参可能是int 或double类型,那么还是要定义两个不同的函数,只是他们用了同一个名字,如下:
其实c++为了解决这个问题,提供了另一个函数模板功能:
http://blog.csdn.net/chaipp0607/article/details/55546582

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;
}

举个例子:函数参数个数相同,但是参数类型不同

#include <iostream>  
using namespace std;  
int main( )  
{  
	int max(int a,int b,int c);
	double max(double a,double b,double c);
	int i =1;
	int j =2;
	int k =3;
	int l = max(i,j,k);
	cout <<l<<endl;
	double q =1.11;
	double w =2.21;
	double e =3.31;
	double r = max(q,w,e);
	cout <<r<<endl;
	getchar();
	return 0;  
}  

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;
}

运行结果:
3
3.31

举个例子:函数参数个数不同,参数类型相同

#include <iostream>  
using namespace std;  
int main( )  
{  
	int max(int a,int b);
	int max(int a,int b,int c);
	int i =1;
	int j =2;
	int k =3;
    int m = max(i,j);
	int l = max(i,j,k);
	cout <<m<<endl;
	cout <<l<<endl;
	getchar();
	return 0;  
}  

int max(int a,int b)
{  
	if (b>a) a=b;
	return a;
}
int max(int a,int b,int c)
{  
	if (b>a) a=b;
	if (c>a)  a=c;
	return a;
}


运行结果:
2
3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值