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