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

admin2010-03-29  21

问题 有以下程序:    #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+( iht 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 dl(  6,  20,  2004  ),  d2;          d2 = dt + 20;          d2.disp();          return 0;    }    执行后的输出结果是(   )。

选项 A、2004-7-10
B、2004-6-20
C、2004-7-20
D、程序编译时出错

答案1

解析 本题通过将“+”运算符重载为类date的成员函数实现简单的对象加法。类date中的“+”运算符重载函数中,将传入的实参值day,加到类date的私有成员变量day上,并实现变量month和year的相应变化,从而达到日期对象相加的目的。
转载请注明原文地址:https://jikaoti.com/ti/1iW0FFFM
0

最新回复(0)