在下面程序的画线处填上适当的内容,使程序执行后的输出结果为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( );
}
参考答案:Date
解析: 因为重载函数后面有两个形参,“+”运算符是二元运算符,故将“+”运算符重载为友元函数,重载为友元函数的一般格式为: niend函数类型operator运算符(形参表){函数体}