有个小题,看来挺难的,哪位高手看一下?
#include<iostream>using namespace std;
class date
{
int mo,da,yr;
public:
date(int m,int d,int y){mo=m;da=d;yr=y;}
void disp()
{
cout<<mo<<"/"<<da<<"/"<<yr<<endl;
}
friend date operator +(date&d,int day)
{
date dt;
dt.mo=d.mo;
dt.yr=d.yr;
day+=d.da;
while(day>dys[dt.mo-1])
day-=dys[dt.mo-1];
if(++dt.mo==13)
{
dt.mo=1;dt.yr++;}
}
dt.da=day;
return dt;
}
void main()
{
date d1(2,10,2001),d2;
d2=d1+465;
d2.disp();
}
调试未能通过,不知道怎麽搞? class A { };这个分号呢?
另外:你把operator +弄成友元干什么.
最后,请注意你的程序格式. #include<iostream>
using namespace std;
class date
{
int mo,da,yr;
public:
date()
{
mo=0;da=0;yr=0;
}
date(int m,int d,int y)
{
mo=m;da=d;yr=y;
}
void disp()
{
cout<<mo<<"/"<<da<<"/"<<yr<<endl;
}
friend date operator +(date&d,int day);
};
date operator +(date&d,int day)
{
date dt;
dt.mo=d.mo;
dt.yr=d.yr;
day+=d.da;
// while(day>dys[dt.mo-1])
//day-=dys[dt.mo-1];
if(++dt.mo==13)
{
dt.mo=1;dt.yr++;
}
d.da=day;
return dt;
};
int main()
{
date d1(2,10,2001),d2;
d2=d1+465;
d2.disp();
return 0;
} 谢谢两位高手!
页:
[1]
