博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单多继承
阅读量:4228 次
发布时间:2019-05-26

本文共 2340 字,大约阅读时间需要 7 分钟。

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

转载地址:http://vxdqi.baihongyu.com/

你可能感兴趣的文章
Linux 设备驱动 Edition 3
查看>>
Linux驱动开发学习的简单步骤
查看>>
LINUX下编程工具常见用法小结
查看>>
驱动中位域操作简析
查看>>
Linux 引导过程内幕
查看>>
十年学会程序设计
查看>>
GPS NMEA-0183协议详解
查看>>
Rational 最新软件试用下载地址
查看>>
正则表达式30分钟入门教程
查看>>
Build the Hack CPU with Verilog -- 陈硕
查看>>
《计算机系统要素》配套软件和资料下载
查看>>
u-boot 启动过程 —— 基于S3C2410 --转载自周明
查看>>
U-boot大全
查看>>
怎样开公司
查看>>
灵活使用Linux下的glimpse工具和tee命令
查看>>
介绍Linux下经典的文件传输工具: lrzsz
查看>>
活用AXD Debugger调试器的命令行,实现u-boot的源代码级调试
查看>>
程序员的一份礼物-常用工具集
查看>>
uClinux 启动过程详细分析
查看>>
嵌入式系统 Boot Loader 技术内幕
查看>>