今天再写一个多重继承的应用实例,时间类和日期类派生出时间日期类
程序代码
#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");
}
执行结果: