函数重载 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
相关推荐
BUG收容所所长8 分钟前
栈的奇妙世界:从冰棒到算法的华丽转身
前端·javascript·算法
wangjinjin1809 分钟前
Python Excel 文件处理:openpyxl 与 pandas 库完全指南
开发语言·python
愚润求学9 分钟前
【C++】类型转换
开发语言·c++
XRZaaa14 分钟前
常见排序算法详解与C语言实现
c语言·算法·排序算法
@我漫长的孤独流浪17 分钟前
数据结构测试模拟题(4)
数据结构·c++·算法
智驱力人工智能21 分钟前
智慧零售管理中的客流统计与属性分析
人工智能·算法·边缘计算·零售·智慧零售·聚众识别·人员计数
斯奕sky_small-BAD22 分钟前
C++ if语句完全指南:从基础到工程实践
java·开发语言·php
Humbunklung31 分钟前
Rust Floem UI 框架使用简介
开发语言·ui·rust
csdnzzt36 分钟前
从内存角度透视现代C++关键特性
c++
jie188945758661 小时前
C++ 中的 const 知识点详解,c++和c语言区别
java·c语言·c++