时间类和日期类派生出时间日期类

时间:2022-09-07 19:13:00

今天再写一个多重继承的应用实例,时间类和日期类派生出时间日期类

程序代码

#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");
}


执行结果:

时间类和日期类派生出时间日期类