? ? ?函数重载就是用同一个函数名定义的不同函数,当函数名和不同的参数搭配时函数的功能和含义不同。
? ? ? 同一个作用域,参数个数不同或者参数类型不同或者参数顺序不同(满足一个即可)
void func(){}
void func(int x){}
void func(char x){}
void func(int x,int y){}
void func(int x,char y){}
void func(char x,int x){}
? ? ?这几个函数虽然名字相同,但因为满足了上面三个条件的至少一个,所以是函数重载,不会冲突。
? ? ?其实编译器在将我们得到程序编译完成后会将变量和函数变成一个一个的符号,存放这些符号的表格我们称之为符号表,我们可以对程序进行编译查看函数对应的符号
编译命令:g++ -c main.cpp
执行命令:nm main.o查看符号表
? ? ?
? ? ? ? ?我们看到在将函数转换成符号时,是根据函数名,形参类型进行转化的
? ? ? ? ?c就代表char,i就是int,func就是func函数。