c++什么是函数重载? 函数重载的实现原理是什么?

函数重载

在同一个作用域内,函数名字相同,参数(个数,顺序,类型)不同,那么就是函数重载

cpp 复制代码
void fun(){
  cout<<"没有参数";
}
void fun(int a){  
  cout<<"int";
}
void fun(int a,float b){  
  cout<<"int float";
}

函数重载和返回值没关系

cpp 复制代码
int fun(){
  cout<<"wu";
}
void fun(){            //俩函数没有构成重载
  cout<<"wu";
}

函数重载的实现原理是什么?

编译器通过函数的参数类型、参数个数、参数顺序来区分不同的重载函数,在编译过程中,编译器会根据调用函数的实参类型选择合适的重载函数进行调用

为什么c语言函数名字相同会报错?而c++可以重载?

因为c语言函数名字经过编译之后没有改变,而c++函数名字编译之后会掺杂参数类型

当函数重载和参数默认值一起使用时,要注意二义性问题

cpp 复制代码
#include<iostream>
using namespace std;

void fun(int a,int b=1);
void fun(int a);

int main(){
    fun(0);//此时编译器不知道调用哪个函数
    return 0;
    
}
相关推荐
hold?fish:palm35 分钟前
9 找到字符串中所有字母异位词
c++·算法·leetcode
啦啦啦啦啦zzzz2 小时前
算法:回溯算法
c++·算法·leetcode
Lzg_na2 小时前
订阅发布模块事例
c++
郝学胜-神的一滴2 小时前
[简化版 GAMES 104] 现代游戏引擎 02:拆解现代游戏引擎5+1层级架构,吃透引擎底层核心逻辑
c++·unity·架构·游戏引擎·图形渲染·unreal engine·系统设计
汉克老师2 小时前
2026年CSP-J初赛分数线-----预测
c++·csp-j·小学生·学c++编程
脱胎换骨-军哥2 小时前
C++数据库存储引擎内核开发:B+树索引与MVCC并发控制的完整实现
数据库·c++·b树
小保CPP3 小时前
OpenCV C++将多张图像合并为webp动图
c++·人工智能·opencv·计算机视觉
乐观勇敢坚强的老彭4 小时前
信奥C++一维数组笔记
开发语言·c++·笔记
码上有光4 小时前
异常和智能指针
java·大数据·c++·servlet·异常·智能指针
王维同学4 小时前
[原创][Windows C++]Explorer Shell 扩展、图标覆盖与 COM 服务器定位
c++·windows·注册表