C++函数重载

来源:互联网 发布:电视直播用哪个软件 编辑:程序博客网 时间:2024/06/05 08:38

函数重载:

              在同一作用域内,函数名相同,参数列表不同的函数,叫做重载函数

          注: 1. 必须在同一作用域内

                    2. 函数名必须相同

                    3.参数列表必须不同(参数个数,顺序,类型)

                    4.返回值可同可不同(与返回值没有关系)


重载与域

重载函数集合中的全部函数都应在同一个域中声明,一个声明为局部的函数将隐藏而不是重载一个全局域中声明的函数。

最常见的例子就是继承关系中的子类声明和父类同名的函数,这不是重载。



c++支持函数重载,而c却不支持函数重载


1.  在c语言中,我们写好函数(例:int Add(int a,int b)),在编译过程中,编译器会将函数名称改为_Add;不管参数列表是什么类型的,编译器都会将函数名改为 _Add。

2.在c++中,代码在编译时会根据参数列表对函数进行重命名。函数名会被编译   ?函数名+@@YA+返回值+参数类型@z



在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”声明?


extern是C/C++语言中表明函数全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。

extern "C"的真实目的是实现类C和C++的混合编程。在C++源文件中的语句前面加上extern "C",表明它按照类C的编译和连接规约来编译和连接,而不是C++的编译的连接规约。这样在类C的代码中就可以调用C++的函数或变量


原创粉丝点击