问题 单项选择题

有以下程序
#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的成员函数实现简单的对象加法。

单项选择题
填空题