问题 单项选择题

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

单项选择题 案例分析题
单项选择题