函数重载 C++

在同一作用域中声明几个功能类似的同名函数,这些函数的形参列表不同(个数或类型)

cpp 复制代码
#include<iostream>
using namespace std;
// 1、参数类型不同
int Add(int left, int right)
{
 cout << "int Add(int left, int right)" << endl;
 return left + right;
}
double Add(double left, double right)
{
 cout << "double Add(double left, double right)" << endl;
 return left + right;
}
// 2、参数个数不同
void f()
{
 cout << "f()" << endl;
}
void f(int a)
{
 cout << "f(int a)" << endl;
}
// 3、参数类型顺序不同
void f(int a, char b)
{
 cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{
 cout << "f(char b, int a)" << endl;
}
int main()
{
 Add(10, 20);
 Add(10.1, 20.2);
 f();
 f(10);
 f(10, 'a');
 f('a', 10);
 return 0;
}
比

C++能够重载的原理:

名字修饰

C语言中没有名字修饰,而是在链接时直接用函数名取找地址,有同名函数时,区分不开。

C++中,在名字中引入参数类型等方法,区别了同名函数。

例如:在Linux环境下

cpp 复制代码
int Add(int left, int right);
//_Z3Addii 前面_Z是固定的,后面是函数名位数+函数名+参数类型
double Add(double left, double right)
//_Z3Adddd
相关推荐
爱上妖精的尾巴1 天前
7-1 WPS JS宏 Object对象创建的几种方法
开发语言·前端·javascript
炽烈小老头1 天前
【每天学习一点算法 2025/12/30】最大子序和
学习·算法
ZePingPingZe1 天前
静态代理、JDK和Cglib动态代理、回调
java·开发语言
2501_921649491 天前
iTick 全球外汇、股票、期货、基金实时行情 API 接口文档详解
开发语言·python·websocket·金融·restful
Flash.kkl1 天前
优选算法专题十八——BFS解决拓扑排序
算法·宽度优先
闻缺陷则喜何志丹1 天前
计算几何汇总
c++·数学·计算几何·凸多边形·简单多边形
你怎么知道我是队长1 天前
python---进程
开发语言·chrome·python
C++ 老炮儿的技术栈1 天前
时序数据库 相对于关系型数据库,有什么区别
c语言·开发语言·c++·机器人·时序数据库·visual studio
hetao17338371 天前
2025-12-30 hetao1733837 的刷题笔记
c++·笔记·算法
前端不太难1 天前
RN 列表里的局部状态和全局状态边界
开发语言·前端·harmonyos