问题 单项选择题

有以下程序
#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 -= tays[ dt.month - 1 ];
if ( ++dt.month == 13

dt.month = 1;
dt.yeare++;


dr. 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的成员函数实现简单的对象加法。

单项选择题
单项选择题