运算符重载

siniandejiyi 2008-10-31 10:54:59
重载”+”运算符, 实现两个日期相加.相加的规则
Year取大的日期的year,先day相加,如果day>30, 则 month+1, day变为 (day-30) 如果month>12, 则 year+1 ……
重载作为成员函数, 注意只有一个参数: 即如
Date operator+(const Date& b) { ……..}
main函数中的形式:
main( ){
Date a(3, 12 , 1995);
Date b(1993, 10, 20);
Date c = a+b;
那么c应该是 1996年2月 2日
...全文
87 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingtiancao 2008-11-02
  • 打赏
  • 举报
回复
还是像我在一楼说的,如果楼主的两个Data对象如下:
Date a(3, 12 , 1995);
Date b(10, 20, 1993);

按楼主的意思,代码如下:

Data Data::operator+ (const Data& b)
{
int m = (data + b.data)/30;
int y = (month + b.month + m)/12;
data = (data + b.data)%30;
month = (month + b.month + m)%12;
year = ( year > b.year ? year + y : b.year + y );

return *this;
}
qingtiancao 2008-11-02
  • 打赏
  • 举报
回复
楼主写错了吧,既然是类对象,怎么会出现:
Date a(3, 12 , 1995);
Date b(1993, 10, 20);
这两个不同参数格式的对象呢?

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧