【菜鸟C++学习笔记】25.函数重载

来源:互联网 发布:光钎网络监控安装教程 编辑:程序博客网 时间:2024/04/30 04:00

函数重载的本质:用相同名字的函数处理不同的事儿

1、重载方法:

函数名字相同,参数类型不同或参数个数不同等都可以实现重载。例如:

#include <iostream>using namespace std;void fun(int a){cout<<"a的平方:"<<a*a<<endl;}void fun(float b){cout<<"b的倍数:"<<b*b<<endl;}void fun(double c){cout<<"c的倍数:"<<c*c<<endl;}int main(){int a=1;float b=1.5;double c=1.2345;fun(a);fun(b);fun(c);return 0;}
输出结果:


分析:可见,同样是函数fun(),里面参数类型不一样,可实现不同的功能。

讨论:对于成员函数和构造函数来说,也可以实现重载,方法与普通函数是一样的,这里就不再举例了。


2、函数默认参数

如果改做声明的方式,并进行初始化,那么初始化的参数就是默认参数,其格式如下:

void fun(int=0,int=0)

上面的式子就表示把两个整型变量初始化为0,这里以成员函数的重载为例:

#include <iostream>using namespace std;class A{public:void set(int=10,int=20);void count(bool=false);private:int w;int h;};void A::set(int width,int height){w=width;h=height;}void A::count(bool a){if (a==true){cout<<"a的值为真时,构成矩形面积为:"<<w*h<<endl;}else{cout<<"a的值为假时,构成三角形面积为:"<<w*h/2<<endl;}}int main(){A one;one.set();one.count();one.count(1);return 0;}

输出结果:



分析:声明里默认的初始化参数构成一种重载方式,当调用无参数函数时,即调用默认的参数值。