c++中函数重载的实现原理
来源:互联网 发布:亚马逊数据怎么分析 编辑:程序博客网 时间:2024/06/06 20:38
先来看一段代码
#include <stdio.h>
int Add(int a,int b)
{
return a+b;
}
double Add(double a,double b)
{
return a+b;
}
int main()
{
return 0;
}
在c语言编译器下是错误的,根本编译不过去,编译器会报出Add重定义的错误。
函数重载:为方便使用,c++中对函数可以进行重载。也就是说,在同一作用域类,一组函数的函数名可以相同,参数列表可不同(参数个数不同,参数类型不同),返回类型可同可不同。
不如下面的代码:
#include <iostream>
using namespace std;
int Add(int a,int b,int c)
{
return a+b+c;
}
int Add(int a,int b)
{
return a+b;
}
double Add(double a,double b)
{
return a+b;
}
double Add(int a,double b)
{
return a+b;
}
int main()
{
cout<<Add(1,2)<<endl;
cout<<Add(2,2,3)<<endl;
cout<<Add(3.14,2.25)<<endl;
cout<<Add(1,2.23)<<endl;
return 0;
}
在c++编译器中是可以编译过的,而且不会报出错误。
因为在c++的编译过程中对函数名的解析不同。
c++程序中调用c编译器编译后的函数为什么要加extern "C"?
答:C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言不同,例如 int Add(int x,int y); 在被C编译器编译后为_Add,而C++则会产生像?Add@@YAHHH@Z之类的名字,所以C++提供了C连接交换指定符号extern “C”来解决名字匹配问题。
- C++中函数重载的实现原理
- C++中函数重载的实现原理
- c++中函数重载的实现原理
- 【C/C++】C++中函数重载原理
- 函数重载的实现原理
- 解析C++中函数重载的实现原理
- 解析C++中函数重载的实现原理
- 解析c++中函数重载的实现原理
- c函数重载的实现
- C++函数重载实现的原理以及为什么在C++中调用C语言编译的函数时要加上extern "C"声明
- C++实现函数重载的原理
- C++实现函数重载的原理
- c++函数重载的实现原理
- c++函数重载的实现原理
- C++中函数重载的原理
- C++(多态实现原理)函数重写,重载,重定义
- 如何实现 C 的函数重载
- C语言是实现函数的重载
- leetcode 328. Odd Even Linked List
- 二叉搜索树的后序遍历序列
- Linux笔记
- VGA、QVGA、CIF、SXGA等视频格式尺寸
- 【C语言】C语言实现静态通讯录
- c++中函数重载的实现原理
- Jenkins启动
- Mac开发之项目中图片管理
- 【python】 python2.7.5 安装pip
- XYOJ 1007 连续多数求和
- easyui-combobox设置值
- 算法与数据结构知识点总结(1)
- Android开发 之 屏幕坐标获取想(x,y)
- R分类算法-KNN算法