有以下程序 #include<iostream> using namespace std; static int days []={31,28,31,30,31,30,3l,31,30,31,30,31}; class date { private:int month,day,year; public:date(int m,int d,int y) {month=m;day=d;year=y; } date() {} void disp() { cout<<year<<"-"<<month<<"-"<<day<<end1; } date operator+(int day) {date dt=*this;day+=dt.day; while(day>days[dt.month-1]) {day-=days[dt.month-1];if(++dt.month==13) {dt.month=1;dt.year++;} }dt.day=day;retrn dt; } }; int main() { date d1(6,20,2004),d2; d2=d1+20; d2.disp(); return 0; } 执行后的输出结果是
A.2004-7-10
B.2004-6-20
C.2004-7-20
D.程序编译时出错
参考答案:A
解析: 本题考核运算符的重载。本题通过将“+”运算符重载为类date的成员函数实现简单的对象加法,