C ++函数重载

在C ++中,可以使用同一个名称制作多个函数,这一概念称为函数重载。我们可以将相同的函数名称用于不同目的,并使用不同数量和类型的参数。

在函数重载中,函数名称将相同,但参数类型,参数顺序,参数数量必须不同。

C ++编译器通过检查调用中参数的数量,类型和顺序来选择适当的函数。函数重载通常用于创建多个具有相同名称的函数,这些函数执行相似的任务但针对不同的数据类型。

在程序中使用函数重载有以下优点:

  • 避免对同一操作使用不同的函数名。

  • 有助于轻松理解,调试和分组。

  • 代码易于维护。

  • 程序与外界之间的关系更易于理解。

要记住的要点

函数重载不依赖于函数的返回类型。

请看以下功能:

int sumOfNumbers(int,int);
float sumOfNumbers(float,float); 如果您将调用类似(sumOfNumbers(10,20);和sumOfNumber(10.2,20.3);)
的函数,则这种类型的函数重载将产生错误“歧义调用重载函数”

要解决此问题,请使用10.2f(作为浮点值)和20.3f作为函数argemnts。

考虑例子

#include <iostream>
using namespace std;

//函数声明
int		sumOfNumbers(int,int);		//类型1-
int		sumOfNumbers(int,int,int);	//类型2-
int		sumOfNumbers(int,float);	//类型3-
float	sumOfNumbers(float,float);	//类型4-

int main(){
	cout<<"Type -1 : SUM IS = "<< sumOfNumbers(10,20) << endl; 
	cout<<"Type -2 : SUM IS = "<< sumOfNumbers(10,20,30) << endl; 
	cout<<"Type -3 : SUM IS = "<< sumOfNumbers(10,20.0f) << endl; 
	cout<<"Type -4 : SUM IS = "<< sumOfNumbers(10.2f,20.3f) << endl; 

	return 0;
}

//函数定义...-

int sumOfNumbers(int x,int y)
{
	return (x+y);
}

int sumOfNumbers(int x,int y,int z)
{
	return (x+y+z);
}

int sumOfNumbers(int x,float y)
{
	return (x+(int)y);
}

float sumOfNumbers(float x,float y)
{
	return (x+y);
}
Type -1 : SUM IS = 30
Type -2 : SUM IS = 60
Type -3 : SUM IS = 30
Type -4 : SUM IS = 30.5