5. 详解函数重载

Posted 为了财务自由!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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"里面!

以上是关于5. 详解函数重载的主要内容,如果未能解决你的问题,请参考以下文章

C++ 入门超详解!

C++ 入门超详解!

函数的特点,应用,重载等讲解(代码加理论详解)!

C++中重载函数详解

[C++] 多态详解

[C++] 多态详解