函数重载的定义:
函数的重载简要的来说,便是一个作用域和三个不同,即同一作用域内的一组函数的函数名相同,参数列表不同,参数个数不同和参数类型不同(函数的返回值可同可不同)
函数重载的作用
重载函数通常用来在同一个作用域内用同一个函数名,命名一组功能相似的函数,这样做减少了函数名的数量,避免了命名空间的污染,对于程序的可读性有很大的好处
函数重载是一种静态多态
多态:用同一个东西表示不同的形态
多态分为: 静态多态(编译时的多态)和动态多态(运行时的多态)
而函数重载是一种静态多态
函数重载的原理
编译器在编译.cpp文件的过程中使用作用域里的同名函数时,会自动根据函数形参的类型和顺序会对函数进行重命名(不同的编译器在编译时对函数的重命名标准不一样),但是总的来说,他们都把文件中的同一个函数名进行了重命名
在VS编译器中: 根据返回值类型(不起决定性作用)+形参类型和顺序(起决定性作用)
的规则重命名并记录在map文件中
函数重载的优势
重载不是一个真正的面向对象特征,他只是可以简化编程工作的一种方案,而简化工作正是C++语言的全部追求,对函数进行重载的目的就是方便对不同数据类型进行同样处理简化编程工作和提高代码的可读性
案例一 利用重载函数 中 函数参数个数的不同 用同名函数 对不同的形参数目进行区别计算
设置函数并赋予不同的形参数量 进行 函数的重载
重载函数们的具体功能编译
运行结果
具体代码
案例一 同一函数 不同形参类型之间 进行函数重载
#include <iostream>
using namespace std;
void convertTemperature(double tempIn, char typeIn);
int main()
{
double tempIn;
int tempInINT;
char typeIn;
cout << "请以xx.c或xx.f的格式输入一个温度" << endl;
cin >> tempIn >> typeIn;
cin.ignore(100, '\n');
cout << "\n";
convertTemperature(tempIn, typeIn);
cout << "请以xx.c或xx.f的格式输入一个温度" << endl;
cin >> tempInINT >> typeIn;
cin.ignore(