在下面程序的横线处填上__________,使程序执行后的输出结果为1/2005。 #include using namespace std; class Date { public: Date(int

admin2012-12-29  46

问题 在下面程序的横线处填上__________,使程序执行后的输出结果为1/2005。
    #include
    using namespace std;
    class Date
    {
    public:
      Date(int m=1,int y=0):month(m),year(y){}
      void Print(){cout<      __________operator+(const Date&d1,const Date&d2);
    private:
      int month,year;
    };
    Date operator+(const Date&d1,const Date&d2)
    {
      int year,month;
      year=d1.year+d2.year;
      month=d1.month+d2.month;
        year+=(month-1)/12;
      month=(month-1)%12+1;
      return Date(month,year);
    }
    voidmain()
    {
      Date d1(3,2004),d2,d3(10);
      d2=d3+d1;
      d2.Print();
    }

选项

答案friend Date

解析 此题考查的是类与对象以及运算符的重载。题目中“+”重载函数的参数表巾有两个参数,所以是作为友元函数重载,实现的功能是将参数对象中成员变量month、year进行相应对加。题中重载函数的返回值类型是类Dace,所以应填入“friend Date”。
转载请注明原文地址:https://kaotiyun.com/show/dfVp777K
0

最新回复(0)