只做了后两个,PPT哪一页我找不到了
/* c++ 1.对自加运算符重载的函数体(ppt里可以找到)进行四合一的操作 2.日期自增考虑实际输出 3.用友元重载前缀自加运算符 */ #include<iostream> using namespace std; int day[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; class Date { public: Date(int a=1900,int b=1,int c=1):y(a),m(b),d(c){} /*Date operator ++ () { if(y%400==0 || (y%4==0||y%100!=0)) day[2]++; if(d+1>day[m]) { d=1; m++; } else d++; if(m==13) { y++;m=1; } if(y%400==0 || (y%4==0||y%100!=0)) day[2]--; return d; } Date operator ++ (int) { if(y%400==0 || (y%4==0||y%100!=0)) day[2]++; if(d+1>day[m]) { d=1; m++; } else d++; if(m==13) { y++;m=1; } if(y%400==0 || (y%4==0||y%100!=0)) day[2]--; return d; }*/ friend Date operator ++ (Date &d,int) { if(d.y%400==0 || (d.y%4==0||d.y%100!=0)) day[2]++; if(d.d+1>day[d.m]) { d.d=1; d.m++; } else d.d++; if(d.m==13) { d.y++;d.m=1; } if(d.y%400==0 || (d.y%4==0||d.y%100!=0)) day[2]--; return d; } friend Date operator ++ (Date &d) { if(d.y%400==0 || (d.y%4==0||d.y%100!=0)) day[2]++; if(d.d+1>day[d.m]) { d.d=1; d.m++; } else d.d++; if(d.m==13) { d.y++;d.m=1; } if(d.y%400==0 || (d.y%4==0||d.y%100!=0)) day[2]--; return d; } void print() { cout<<y<<" "<<m<<" "<<d<<endl; } private: int y,m,d; }; /* 2004 2 28 */ int main() { int a,b,c;cin>>a>>b>>c; Date d(a,b,c); ++d; d.print(); d++; d.print(); }
本文来自博客园,作者:magicat,转载请注明原文链接:https://www.cnblogs.com/magicat/p/16358925.html