C++考前辅导:重载双目运算符
作为类成员函数的重载为了能进行类对象和一个整型值的加法运算,需要写一个类的成员函数来重载双目加法(+)运算符。该函数在类中的声明如下:
Date operator + (int) const;
函数的声明指出,返回值是一个Date类对象,函数名是运算符+,只有一个整型参数,而且函数是常量型的。当编译器发现某个函数以加上前缀operator的真实运算符作为函数名,就会把该函数当作重载运算符函数来处理。如果在表达式中,该运算符的左边是一个类对象,右边是一个参数类型的一个对象,那么重载运算符函数就会被调用。调用形式如下:
Date dt(6,9,2005);
dt=dt+100;
也可以显式的调用重载运算符函数:
dt.operator + (100);
下面代码重载了双目加法运算符来计算一个整数和一个Date类对象之和,并且返回Date类对象。
#include iostream.h
class Date
{
int mo,da,yr;
static int dys[];
public:
Date(int m=0,int d=0,int y=0)
{ mo=m; da=d; yr=y;}
void display() const
{ cout < Date operator + (int) const;
};
int Date::dys[]={31,28,31,30,31,30,31,31,30,31,30,31};
Date Date::operator+(int) const
{
Date dt=*this;
n+=dt.da;
while(n >=dys[dt.mo-1])
{
n-=dys[dt.mo-1];
if(++dt.da==13)
{
dt.mo=1;
dt,yr++;
}
}
dt.da=n;
return dt;
}
int main()
{
Date olddate(1,1,2005);
Date newdate;
newdate=olddate+100;
newdate.display();
return 0;
}
加群备注:网站(限时赠送500G海量IT学习资料)
关注微信:山西优就业(ID:ujiuyesx)
回复:简历模板,即可领取
【各类行业的简历模板】
回复:安装包的名称,例:AI,即可领取
【AI、DW、PS、AX、C4D等破解版软件】
【小U将毕生绝学传授于你,打倒HR,轻松搞定CEO】
相关推荐:暑期IT镀金之行
免责声明:本文来源于网络,由网友提供或网络搜集,仅供个人交流学习参考使用,不涉及商业盈利目的。如有版权问题,请联系本站管理员予以更改或删除。谢谢合作!
热门标签: