09.函数重载

09.函数重载

1.为什么需要函数重载

  • 当我们需要同一个功能函数实现不同类型或者不同参数个数情况下,都可以调用该函数时就需要函数重载
  • 所谓的函数重载就是多个函数使用相同的函数名
int getMax(int a, int b)
{
    
    
	return a > b ? a : b;
}
float getMax(float a, float b)
{
    
    
	return a > b ? a : b;
}

int c1 = getMax(1,2);
float c2 = getMax(1.0f,2.0f);

2.函数重载构成的条件

  • 1.搞清楚函数重载的构成条件首先需要搞清楚函数的要素:
  • (1)函数返回值
  • (2)函数名
  • (3)函数形参
  • (4)函数的调用约定
  • 2.要构成函数重载必须满足
  • (1)函数名必须相同
  • (2)函数的作用域必须相同
  • (3)函数形参的个数类型或者顺序不同
  • (4)函数的返回值类型或者函数的调用约定不同并不能构成函数重载
//函数形参类型不同,构成函数重载
int getMax(int a, int b)
{
    
    
	return a > b ? a : b;
}
float getMax(float a, float b)
{
    
    
	return a > b ? a : b;
}


//函数形参个数不同,构成函数重载
int getMax(int a, int b)
{
    
    
	return a > b ? a : b;
}
int getMax(int a, int b,int c)
{
    
    
	return a > b ? a : b;
}


//函数形参顺序不同,构成函数重载
int getMax(int a, float b)
{
    
    
	return a > b ? a : b;
}
int getMax(float a, int  b)
{
    
    
	return a > b ? a : b;
}


//但是如果仅仅是形参名称不同并不能构成函数重载
int getMax(int a, float b)
{
    
    
	return a > b ? a : b;
}
int getMax(int c, float d)
{
    
    
	return a > b ? a : b;
}


//如果仅仅是返回值类型不同,也不能构成函数重载
int getMax(int a, float b)
{
    
    
	return a > b ? a : b;
}
float getMax(int a, float b)
{
    
    
	return a > b ? a : b;
}


//最后一个,函数的调用方式不同,也不能构成函数重载
int __stdcall getMax(int a, float b)
{
    
    
	return a > b ? a : b;
}
int __cdecl getMax(int a, float b)
{
    
    
	return a > b ? a : b;
}

关于函数调用方式的相关内容可以参考该链接

猜你喜欢

转载自blog.csdn.net/m0_45388819/article/details/113817001
今日推荐