简单多继承

#include <iostream>

using namespace std;

class Data
{
public:
    Data(int y = 0, int m = 0, int d = 0);
    void setYear(int y);
    void setMonth(int m);
    void setDay(int d);
    int GetYear();
    int GetMonth();
    int GetDay();
    void display();
private:
    int year;
    int month;
    int day;
};

inline Data::Data(int y /* = 0 */, int m /* = 0 */, int d /* = 0 */)
{
    if (y < 0)
    {
        y = 0;
    }
    if (m < 0 || m >= 13)
    {
        m = 0;
    }
    if (d < 0 || d > 31)
    {
        d = 0;
    }
    year = y;
    month = m;
    day = d;
}

inline void Data::setYear(int y)
{
    year = y;
}

inline void Data::setMonth(int m)
{
    month = m;
}

inline void Data::setDay(int d)
{
    day = d;
}

inline int Data::GetYear()
{
    return year;
}

inline int Data::GetMonth()
{
    return month;
}

inline int Data::GetDay()
{
    return day;
}

inline void Data::display()
{
    cout << year << "_" << month << "_" << day ;
}

/****************************************************/
class Time
{
public:
    Time(int h = 0, int m = 0, int s = 0);
    void setHour(int y);
    void setMin(int m);
    void setSec(int d);
    int GetHour();
    int GetMin();
    int GetSec();
    void display();
private:
    int hour;
    int minute;
    int second;
};

inline Time::Time(int h /* = 0 */, int m /* = 0 */, int s /* = 0 */)
{
    hour = h;
    minute = m;
    second = s;
}

inline void Time::setHour(int h)
{
    hour = h;
}

inline void Time::setMin(int m)
{
    minute = m;
}

inline void Time::setSec(int s)
{
    second = s;
}

inline int Time::GetHour()
{
    return hour;
}

inline int Time::GetMin()
{
    return minute;
}

inline int Time::GetSec()
{
    return second;
}

inline void Time::display()
{
    cout << hour << ":" << minute << ":" << second ;
}

/*****************************************************/
class DataAndTime: public Data, public Time
{
public:
    DataAndTime(int y = 0, int m = 0, int d = 0, int hour = 0, int min = 0, int sec = 0);
    void display();
};

inline DataAndTime::DataAndTime(int y/* = 0*/, int m/* = 0*/, int d/* = 0*/, int hour/* = 0*/, int min/* = 0*/, int sec/* = 0*/)
:Data(y, m, d), Time(hour, min, sec)
{
}

inline void DataAndTime::display()
{
    Data::display();
    cout << " " ;
    Time::display();
}

/****************************************************/
int main()
{
    DataAndTime dandt(2006, 11, 13, 13, 25, 38);
    dandt.display();
    cout << endl;
    cout << dandt.GetYear() << endl;
    cout << dandt.GetSec() << endl;
    dandt.setYear(1985);
    dandt.setMin(33);
    dandt.setSec(133);
    dandt.display();
    cout << "end test";
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值