有以下程序 #include <iostream> using namespace std; static int days[]= { 31,28,31,30,31,30,31,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; return 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的成员函数实现简单的对象加法。