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;
    
}
相关推荐
c++之路8 小时前
C++信号处理
开发语言·c++·信号处理
故事还在继续吗11 小时前
C++20关键特性
开发语言·c++·c++20
青少儿编程课堂11 小时前
2026青少儿信息素养大赛备赛指南!Python/Scratch/C++备考要点
开发语言·c++·python
旖-旎11 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
AIFarmer12 小时前
【无标题】
开发语言·c++·算法
John_ToDebug12 小时前
WebHostView 与 TabStrip 交互机制深度解析
c++·chrome·windows
南境十里·墨染春水13 小时前
C++笔记 STL——set
开发语言·c++·笔记
dgaf13 小时前
DX12 快速教程(17) —— 立体图标与合并渲染
c语言·c++·3d·图形渲染·d3d12
charlie11451419116 小时前
通用GUI编程技术——图形渲染实战(三十八)——顶点缓冲与输入布局:GPU的第一个三角形
开发语言·c++·学习·图形渲染·win32
用户8055336980316 小时前
现代Qt开发教程(新手篇)1.10——进程
c++·qt