今天再写一个多重继承的应用实例,时间类和日期类派生出时间日期类
程序代码
#include <iostream> using namespace std; class Date//日期类 { public: //构造函数 Date(int y = 0, int m = 0, int d = 0); //设置日期 void SetDate(int y,int m,int d); //打印日期 void PrintDate() { cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl; } protected: int year;//年 int month;//月 int day;//日 }; //构造函数(使用初始化表初始化数据成员) Date::Date(int y, int m, int d):year(y),month(m),day(d){} //设置日期 void Date::SetDate(int y, int m, int d) { year = y; month = m; day = d; } class Time//时间类 { public: //构造函数 Time(int h = 0, int m = 0, int s = 0); //设置时间 void SetTime(int h, int m, int s); //打印时间 void PrintTime(); protected: int hour;//时 int minute;//分 int second;//秒 }; //构造函数 Time::Time(int h, int m, int s):hour(h), minute(m), second(s){} //设置时间 void Time::SetTime(int h, int m, int s) { hour = h; minute = m; second = s; } //打印时间 void Time::PrintTime() { cout<<hour<<":"<<minute<<":"<<second<<endl; } class TimeDate : public Date, public Time { public: //构造函数 TimeDate(int y, int m, int d, int h, int mm, int s); //打印时间和日期 void PrintDateTime(); }; //构造函数 TimeDate::TimeDate(int y, int m, int d, int h, int mm, int s): Date(y, m, d), Time(h, mm, s){} //打印时间和日期 void TimeDate::PrintDateTime() { Date::PrintDate(); Time::PrintTime(); } void main() { Date d;//定义一个日期对象d d.SetDate(2014, 9, 16);//设置日期 d.PrintDate();//打印日期 Time t;//定义一个时间对象t t.SetTime(16, 3, 30);//设置时间 t.PrintTime();//打印时间 //定义一个时间日期对象 TimeDate td(2014, 9, 16, 15, 39, 0); //打印时间和日期 td.PrintDateTime(); system("pause"); }
执行结果: