下列程序定义了类Dates(“日期”)和类Plants(“植物”),以及主函数main,在主函数中定义了二个植物类的对象,程序实现了它们开花时间的比较。请在程序中“//**********found**********”下的横线处填写适当的代码,以实现上述类定义。对于主函数中给定的测试数据,程序的正确输出结果应为:
桃开花时间是:2020-3-10
杏开花时间是:2020-4-5
桃和杏不在同一天开花。
[程序]
#include<iostream>
using namespace std;
class Dates{
public:
Dates(int y=0,int m=0,int d=0):year(y),month(m),day(d){ }
~Dates(){ }
int GetYear(){return year;}
int GetMonth(){return month;}
int GetDay(){return day;}
private:
//**********found**********
____________(1)______________ ; // 开花日期(年月日)
};
class Plants:public Dates{
public:
Plants(char*n,int y=0,int m=0,int d=0);
~Plants();
char*GetName();
private:
char *name; // 植物名称
};
//**********found**********
Plants::Plants(char*n,int y,int m,int d): _________(2)_____________
{
int length;
length=strlen(n);
name=new char[length+1];
strcpy_s(name,length+1,n);
}
Plants::~Plants()
{
delete []name;
}
char* Plants::GetName()
{
//**********found**********
return ________(3)___________ ;
}
bool IsEqual(Plants &pa,Plants &pb) // 判断pa和pb开花日期是否相同,是返回真,否则返回假
{
if(pa.GetYear()==pb.GetYear())
//**********found**********
if( ___________(4)____________ )
if(pa.GetDay()==pb.GetDay())return true;
return false;
}
int main()
{
Plants plantA(桃,2020,3,10);
Plants plantB(杏,2020,4,5);
cout<<plantA.GetName()<<开花时间是:<<plantA.GetYear()<<'-'<<plantA.GetMonth()<<'-'<<plantA.GetDay()<<endl;
cout<<plantB.GetName()<<开花时间是:<<plantB.GetYear()<<'-'<<plantB.GetMonth()<<'-'<<plantB.GetDay()<<endl;
if(IsEqual(plantA,plantB))
cout<<plantA.GetName()<<和<<plantB.GetName()<<在同一天开花。<<endl;
else cout<<plantA.GetName()<<和<<plantB.GetName()<<不在同一天开花。<<endl;
system(pause);
return 0;
}