实验10继承和多态 【实验目的】 1掌握掌握多重继承和派生类的方法 2.掌握初始化基类成员的方法 3.掌握定义虚基类的方法 【实验内容】 1.定义一个日期(年、月、日)的类和一个时间(时、分、秒)的类,并由这两 个类派生出日期和时间类。主函数完成基类和派生类的测试工作 #include #include lass date t int Year, Month, Day; 分别存放年、月、日 p Date(int y=0, int m=o, int d=O) f Year= y; Month= m; Day =d; j void SetDate(int int, int ) void GetDate(char );3: void Date: SetDate(int y int m, int d) f Year y; Month= m; Day =d; y void Date GetDate(char *s) i char t20]; itoa(Year, s, 10); strcat(s, ")i itoa (Month, t 10); strcat(s, t); strcat(s, itoa( ay, t, 10); strcat(s, t); class time int Hours. Minutes. seconds: /时、分、秒 bice Time(int h=0, int m=0, int s=0) i Hours=h; Minutes= m; Seconds= s; ne(int h, int Hours=h; Minutes= m; Seconds=s; void GetTime(char *); void Time: GetTime(char *s) char t[20]; itoa(Hours, S, 10); strcat(s, :) itoa(Minutes, t, 10); strcat(s, t); strcat(,:): itoa(Seconds, t, 10); strcat(s, t);
实验 10 继承和多态 【实验目的】 1 掌握掌握多重继承和派生类的方法 2.掌握初始化基类成员的方法 3.掌握定义虚基类的方法 【实验内容】 ⒈定义一个日期(年、月、日)的类和一个时间(时、分、秒)的类,并由这两 个类派生出日期和时间类。主函数完成基类和派生类的测试工作。 #include #include #include class Date { int Year,Month,Day; //分别存放年、月、日 public: Date(int y=0, int m=0,int d=0) { Year= y; Month = m; Day = d; } void SetDate(int ,int ,int ); void GetDate(char *); }; void Date::SetDate(int y,int m,int d ) { Year= y; Month = m; Day = d; } void Date::GetDate(char *s) { char t[20]; _itoa(Year,s,10); strcat(s,"/"); _itoa(Month,t,10); strcat(s,t); strcat(s,"/"); _itoa(Day,t,10); strcat(s,t); } class Time { int Hours,Minutes,Seconds; //时、分、秒 public: Time(int h=0,int m=0, int s=0) { Hours = h; Minutes = m; Seconds = s;} void SetTime(int h,int m, int s) { Hours = h; Minutes = m; Seconds = s; } void GetTime(char *); }; void Time::GetTime(char *s) { char t[20]; _itoa(Hours,s,10); strcat(s,":"); _itoa(Minutes,t,10); strcat(s,t); strcat(s,":");_itoa(Seconds,t,10); strcat(s,t);
class Date Time public date public Time ∥公有派生 DateTime: DateO,Timeo 3 DateTime(int y, int m, int d, int h, int min, int s) Date(y, m, d), Time(h, min, s) void GetDate Time(char *) void SetDateTime(int y, int m, int d, int h, int min, int s); void DateTime: GetDateTime(char *s) char sl[1o0, s2[ 100]; GetDate(sD); GetTime(s2); stripy(s,"日期和时间分别是:"); strcat(s1); strcat(s, strcat(s, 2); void DateTime: SetDateTime(int y,int m, int d, int h, int min, int s) SetDate(y, m, d); SetTime(h, min, s); void main(void dI(2003,1,30); char s200]; dl.GetDate(s); cou #include <string. class Based char Name 14; 姓名 int Year, Month, Day; ∥分别存放出生年、月、日
} class DateTime:public Date,public Time{ //公有派生 public: DateTime():Date(),Time() { } DateTime(int y,int m,int d,int h,int min,int s): Date(y,m,d),Time(h,min,s){ } void GetDateTime(char *); void SetDateTime(int y,int m,int d,int h,int min,int s); }; void DateTime::GetDateTime(char *s) { char s1[100],s2[100]; GetDate(s1); GetTime(s2); strcpy(s,"日期和时间分别是:"); strcat(s,s1); strcat(s,"; "); strcat(s,s2); } void DateTime::SetDateTime(int y,int m,int d,int h,int min,int s) { SetDate(y,m,d); SetTime(h,min,s); } void main(void ) { Date d1(2003,1,30); char s[200]; d1.GetDate(s); cout #include class Base{ char Name[14]; //姓名 int Year,Month,Day; //分别存放出生年、月、日
char both Place 30 出生地 Base( char *n, int y, int m, int d, char *bp); void SetDate(int, int int ) ∥设置出生年、月、日 void SetName(char *) ∥设置姓名 id SetBoth Place(char *) ∥设置出生地 void GetDate(int * int*, int); /获取出生年、月、日 /获取姓名 void GetBothPlace(char *) /获取出生地 void PrintBaseo 输出有关信息 class AllChin public base char ParMa[l4: 监护人 blic AllChin Based AllChil(char *n, int y, int m, int d, charsbp, char*pm): Base(n, y, m, d, bp); void SetParMa( char ) 设置监护人 void GetParMa( char*); /获取监护人 yoid PrintAllChil() /输出有关信息 class Men: public Base char *unit: ∥单位 int salary /工资 char tel[20; ∥电话 public Men(: Base; Men(char*n, int y, int m, int d, char*bp, char *u, int s, char te): Base(n, y, m, d, bp); void GetData(char*,int,char);取单位,工资,电话 void seetData( char s,int*,char*;设置单位,工资,电话 void PrintMenO /输出有关信息 class OldMen: public Base i int salary char tel[20: public
char BothPlace[30]; //出生地 public: Base( char *n, int y,int m,int d,char *bp) ; Base(); void SetDate(int ,int ,int ); //设置出生年、月、日 void SetName(char *); //设置姓名 void SetBothPlace(char *); //设置出生地 void GetDate(int *,int * ,int *); //获取出生年、月、日 void GetName(char *); //获取姓名 void GetBothPlace(char *); //获取出生地 void PrintBase(); //输出有关信息 }; class AllChil:public Base { char ParMa[14]; //监护人 public : AllChil() :Base(); AllChil(char *n, int y,int m,int d,char *bp,char *pm):Base(n,y,m,d,bp); void SetParMa( char *); //设置监护人 void GetParMa( char *); //获取监护人 void PrintAllChil( ) ; //输出有关信息 }; class Men:public Base { char *unit; //单位 int salary; //工资 char tel[20]; //电话 public: Men( ) :Base(); Men(char*n, int y,int m,int d,char *bp,char *u,int s,char *te):Base(n,y,m,d,bp); void GetData(char *,int *,char *); //取单位,工资,电话 void SeetData(char *,int *,char *); //设置单位,工资,电话 void PrintMen(); //输出有关信息 }; class OldMen:public Base { int salary; char tel[20]; public: ...... };