5. 详解函数重载

函数重载:

  1. C++为什么支持函数重载,C语言为什么不支持函数重载
  2. 函数重载需要注意什么?
  3. C++和C语言之间如何互相调用

在这里插入图片描述
上图为典型的函数重载调用!

C++为什么支持函数重载,C语言为什么不支持函数重载:
C++代码产生符号的时候,函数名+参数列表类型组成!C代码产生函数符号的时候由函数名决定!
在这里插入图片描述
上图:如果在main作用域声明一个函数类型,那么41行报错,无法将const char* 转换成int!编译器在最近的作用域查看函数声明,就用这个函数类型!也就是说必须在同一个作用域,才谈得上重载!其次是一组函数,函数名相同,参数列表的个数或者类型不同,那么这一组函数就称作函数重载!const或者volatile的时候:
void func(int a){}
void func(const int a){}
编译器看这两个函数是一样的,报错!
一组函数,函数名相同,参数列表也相同,仅仅是返回值不同,这是重载么?不是重载!

后续章节:
啥是多态:
静态(编译时期)的多态:函数重载
动态(运行时期)的多态:

C调用C++、C++调用C
C文件:
在这里插入图片描述
cpp文件:
在这里插入图片描述
C文件中按照C来生成符号,而C++中的声明按照C++来产生符号,自然就符号不匹配了,报错!改进:
在这里插入图片描述
告诉编译器这是C的API,产生C方式的符号!(把C函数的声明括在extern "C"里面)

而C调用C++的时候,需要在C++函数定义的时候,括在extern "C"里面!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值