Sobrecarga de funciones de notas de C ++ (sobrecarga de funciones)

Sobrecarga de funciones de notas de C ++ (sobrecarga de funciones)

concepto:

Puede haber n funciones con el mismo nombre en el mismo código

  1. Función: La
    misma interfaz tiene diferentes formas de expresión, realizando la unificación de la interfaz.
  2. Principio:
    Cuando el compilador compila el programa, automáticamente reemplazará la función con la versión correspondiente sobrecargada.
  3. caracteristicas:
  • La sobrecarga de funciones no se preocupa por el tipo de valor de retorno, el tipo de valor de retorno es diferente y todo lo demás es el mismo (nombre de función, tipo de número de parámetro), no se llama sobrecarga de función
  • Sobrecarga de funciones, el nombre de la función debe ser el mismo
  • Sobrecarga de funciones, al menos uno del número o tipo de parámetros debe ser diferente

ejemplo

int add(int a,int b)
double  add(int a,int b) //不是重载,不关心返回值类型
void add(int a,int b);     //不是重载,不关心返回值类型
int add(int c,int d)       不是重载
int myadd(int a,int b)   //不是重载,名字不同
double add(double a,int b)  //是重载
double add(int a,double b)  //是重载 
double add(double a,double b)
double add(double a,double b,double c);   //是重载,个数不同
int add(int a,int b)
{
    
    
	cout<<"第一个版本的add"<<endl;
	return a+b;
}

double add(double a,double b)
{
    
    
	cout<<"第二个版本的add"<<endl;
	return a+b;
}

int main()
{
    
    
	int a=78;
	int b=74;
	double c=45.6;
	double d=52.3;
	float e=85.6;
	//编译器根据实参的类型和个数匹配对应版本的add
	cout<<add(a,b)<<endl; //编译器把这个翻译成  add(int,int)
	cout<<add(c,d)<<endl; //编译器把这个翻译成  add(double,double)
	
	//cout<<add(a,e)<<endl;  //错误,类型不匹配
	//cout<<add(a,b,c)<<endl; //错误,类型和个数都不匹配
}

La sobrecarga de funciones de C ++ no se preocupa por el tipo de valor de retorno

#include <iostream>
using namespace std;

int add(int a,int b)
{
    
    
	cout<<"第一个版本的add"<<endl;
	return a+b;
}



double add(double a,double b)
{
    
    
	cout<<"第二个版本的add"<<endl;
	return a+b;
}


double add(int a,int b)
{
    
    
	cout<<"第三个版本的add"<<endl;
	return a+b;
}
int main()
{
    
    
	int a=78;
	int b=74;
	double c=45.6;
	double d=52.3;
	float e=85.6;
		
	//编译器根据实参的类型和个数匹配对应版本的add
	cout<<add(a,b)<<endl; //编译器把这个翻译成  add(int,int)
	cout<<add(c,d)<<endl; //编译器把这个翻译成  add(double,double)
	
	//cout<<add(a,e)<<endl;  //错误,类型不匹配
	//cout<<add(a,b,c)<<endl; //错误,类型和个数都不匹配
}

Supongo que te gusta

Origin blog.csdn.net/weixin_46026429/article/details/108507885
Recomendado
Clasificación