在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。 #include <iostream> using namespace std; class Date{ public: Date(int m

admin2010-12-16  57

问题 在下面程序的画线处填上适当的内容,使程序执行后的输出结果为1/2005。
   #include <iostream>
   using namespace std;
   class Date{
   public:
   Date(int m=1,int y=0):month(m),year(y){}
   void Print( ){cout<<month<<"/"<<year<<endl;}
      (9)   operator+(const Date&dl,const Date& d2);
   private:
   int month,year;
   };
     (10)  operator+(const Date& dl,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);
   }
   void main( ){
   Date dl(3,2004),d2,d3(10);
   d2=d3+dl;
   d2.Print( );
   }

选项

答案friend:Date Date

解析 因为重载函数后面有两个形参,“+”运算符是二元运算符,故将“+”运算符重载为友元函数,重载为友元函数的一般格式为:
   niend函数类型operator运算符(形参表){函数体}
转载请注明原文地址:https://kaotiyun.com/show/Y7jp777K
0

最新回复(0)