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;
    
}
相关推荐
玖笙&17 小时前
✨WPF编程基础【1.3】:XAML 名称空间
c++·wpf·visual studio
玖笙&17 小时前
✨WPF编程基础【1.4】:类型转换器(含示例及源码)
c++·wpf·visual studio
Ling_Ze21 小时前
visual studio快捷键
c++
Stanford_11061 天前
关于单片机的原理与应用!
c++·单片机·嵌入式硬件·微信小程序·微信公众平台·微信开放平台
雪域迷影1 天前
C++/C#游戏开发引擎和2D/3D图形库
c++·3d·c#
HY小海1 天前
【C++】二叉搜索树
开发语言·数据结构·c++
code monkey.1 天前
【探寻C++之旅】第十五章:哈希表
数据结构·c++·哈希算法·散列表
今天也好累1 天前
贪心算法之船舶装载问题
c++·笔记·学习·算法·贪心算法
lingzhilab1 天前
零知IDE——基于STM32F407VET6和雨滴传感器的多界面TFT降雨监测显示系统
c++·stm32·单片机
轩情吖1 天前
Qt常用控件之QTextEdit
开发语言·c++·qt·信号·qtextedit·多行输入框·桌面级开发