#include<iostream>
#include<cstring>
using namespace std;
class Day{
private:
int Y,M,D;
public:
Day(int y,int m,int d){//定义day3个参数的构造函数
Y=y;M=m;D=d;
cout<<"*****Day*****"<<endl;
}
Day(){//定义day无参的构造函数
cout<<"*****wucanday*****";
}
void ShowDay(){//定义day的输出函数
cout<<"year:"<<Y<<'\t'<<"month:"<<M<<'\t'<<"day:"<<D<<endl;
}
~Day(){//定义day的析构函数
cout<<"*****xigou333*****"<<endl;
}
};
class Person{
private://数据成员
char IdPerson[18];
char Name[21];
char Sex[6];
Day Birthday;
char HomeAddress[50];
public://函数成员
Person(){//定义一个无参构造函数
cout<<"*****wucanogouzao*****"<<endl;
}
Person(char *id,char *name,char *sex,int y,int m,int d,char *add):Birthday(y,m,d){//7个参数的构造函数
strcpy(IdPerson,id);
strcpy(Name,name);
strcpy(Sex,sex);
strcpy(HomeAddress,add);
}
void ShowPerson(){//定义一个输出结果的函数
cout<<"Id:"<<IdPerson<<endl;
cout<<"Name:"<<Name<<endl;
cout<<"Sex:"<<Sex<<endl;
Birthday.ShowDay();//调用ShowDay函数
//cout<<"Birthday:"<<"year:"<<Birthday.Y<<'\t'<<"month:"<<Birthday.M<<'\t'<<"day:"<<Birthday.D<<endl;
//只能通过调用函数成员来访问私有的数据成员,不可直接访问!!!
cout<<"HomeAddress:"<<HomeAddress<<endl;
}
~Person(){//定义析构函数
cout<<"*****xigou777*****"<<endl;
}
Person(Person&ppp){//定义一个复制构造函数
strcpy(IdPerson,ppp.IdPerson);
strcpy(Name,ppp.Name);
strcpy(Sex,ppp.Sex);
strcpy(HomeAddress,ppp.HomeAddress);
}
};
int main(){
Day t(2004,3,4);//调用3个参数构造函数
Person t1;//调用无参构造函数
Person t2("22038636","xiaoyu","nv",2005,3,1,"taiyulu339");//调用7个参数构造函数__注意字符串加“”
Person t3=t2; //调用复制构造函数
t2.ShowPerson();//调用输出函数
}