函数重载 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
相关推荐
froginwe117 小时前
R 绘图 - 饼图
开发语言
三十六煩惱風7 小时前
2026-04/20~26技术问题整理
开发语言
m0_629494738 小时前
LeetCode 热题 100-----21.搜索二维矩阵 II
数据结构·算法·leetcode
杜子不疼.8 小时前
【C++ 在线五子棋对战】 - 项目介绍与环境搭建
开发语言·c++
50万马克的面包8 小时前
C 语言第18讲:预处理详解
c语言·开发语言·windows
Hical618 小时前
C++20 实战心得:现代 C++ 真正成熟的一代
c++·开源
平行侠8 小时前
018二进制GCD(Stein算法)- 用位运算代替除法的最大公因数
数据结构·算法
月疯8 小时前
卡尔曼滤波的数学计算流程
算法
黎阳之光8 小时前
黎阳之光:深耕视频孪生核心领域 构筑数字孪生全域数智新标杆
大数据·人工智能·算法·安全·数字孪生
APIshop8 小时前
Java 调用阿里巴巴商品详情接口实战指南:完整流程与代码实现
java·开发语言