有以下程序 #include <iostream> using namespace std; static int days[]= { 31,28,31,30,31,30,31,31,30,31,30,31 }; c

admin2009-02-15  20

问题 有以下程序      #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、程序编译时出错

答案1

解析 本题考核运算符的重载。本题通过将“+”运算符重载为类date的成员函数实现简单的对象加法。
转载请注明原文地址:https://kaotiyun.com/show/p7kp777K
0

最新回复(0)