(一)重载函数条件
(1)函数名相同
(2)函数参数不同(一下两个满足其中一个即可)
1)函数参数个数不同
2)函数参数类型不同
注意:函数返回值不同不能作为函数重载条件
重载:根据函数参数个数和参数数据类型来自动调用哪一个重载函数
(二)构造函数的重载
1)默认/缺省构造函数
(1)如果没有构造函数,系统会提供一个默认的构造函数帮助创建对象
(2)默认构造函数没有参数
2)复制/拷贝构造函数
用对象初始化另一个对象,需要用到复制构造函数
(1)作用:用一个已知的对象初始化另一个正在被创建的对象调用复制构造函数
(2)写法:复制构造函数的参数是对象的应用
接下来以求矩形面积为例介绍:
#include<iostream>
using namespace std;
class Rect //创建一个矩形类
{
public:
Rect() //默认构造函数
{
len=0;
wid=0;
}
//构造函数1->长方形
Rect(int a,int b)
{
len=a;
wid=b;
}
//构造函数2->正方形
Rect(int a)
{
len=a;
wid=a;
}
//复制构造函数
Rect(Rect& r)
{
len=r.len;
wid=r.wid;
cout<<"复制构造函数被调用"<<endl;
}
int getarea()
{
return len*wid;
}
private:
int len; //长
int wid; //宽
};
int main()
{
//默认构造函数
Rect m1;
cout<<m1.getarea()<<endl;
//构造函数1->长方形
Rect m2(3,4);
cout<<m2.getarea()<<endl;
//构造函数2->正方形
Rect m3(3);
cout<<m3.getarea()<<endl;
//复制构造函数(1)
Rect m4(5,6);
Rect m5(m4);//用一个已知的对象初始化一个正在被创建的对象,调用复制构造函数
//复制构造函数(2)
Rect m6=m4;
return 0;
}