C++函数重载

本文详细介绍了函数重载的作用,包括复用函数名称并遵循类型匹配原则。讲解了函数重载的语法条件,如参数数量、类型和顺序的重要性,以及默认参数情况下如何避免二义性。通过实例展示了如何在类中实现多版本的MyAdd函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数重载

函数重载通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处

作用

  • 复用函数名称。

函数重载语法和条件

  1. 同一个作用域(全局作用域、命名空间作用域、类作用域)
  2. 参数个数不同
  3. 参数类型不同
  4. 参数顺序不同

注意: 返回值类型不作为函数重载条件。(函数的返回值可以忽略)

示例

class
{
public:
	int MyAdd(int a, int b);
	double MyAdd(double a, double b);
	double MyAdd(int a, int b, double c);
	double MyAdd(double c, int a, int b);
}
  • 当函数名字一样的时候,通过参数类型、参数个数、参数顺序来匹配函数调用
  • 函数发生调用,首先编译器会进行严格类型匹配,如果匹配不成功,编译器对参数进行隐式类型转换,转换成功,则可进行函数调用

函数重载原理

编译器为了实现函数重载,也是默认为我们做了一些幕后的工作,编译器用不同的参数类型来修饰不同的函数名。

比如 void func(); 编译器可能会将函数名修饰成 _func,

函数重载碰到默认参数

  • 当重载的函数具有默认值的时候,要避免二义性
int my_function() 
{
	cout << "hello world"; 
	return 0;
}

int my_function(int val = 100) 
{ 
	return 100;
}

void test04()
{
	my_function();  //err  
	//my_function(10);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值