继承性应用实例——日期和时间

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

本文给出一个关于继承性的综合例子,该例子编写一个有关日期(年、月、日)和时间(时、分、秒)的程序。该程序建立三个类,其中一个是日期的类Date,一个是时间的类Time,另一个是日期和时间类DateTime,它是前面两个类为基类的派生类。

下面是该程序的源码:

#include <iostream.h>

#include <string.h>

#include <stdio.h>

typedef char string80[80];

class Date

{

public:

Date() {}

Date(int y, int m, int d) { SetDate(y, m, d); }

void SetDate(int y, int m, int d)

{

Year = y;

Month = m;

Day = d;

}

void GetStringDate(string80 &Date)

{

sprintf(Date, "%d/%d/%d", Year, Month, Day);

}

protected:

int Year, Month, Day;

};

class Time

{

public:

Time() {}

Time(int h, int m, int s) { SetTime(h, m, s); }

void SetTime(int h, int m, int s)

{

Hours = h;

Minutes = m;

Seconds = s;

}

void GetStringTime(string80 &Time)

{

sprintf(Time, "%d:%d:%d", Hours, Minutes, Seconds);

}

protected:

int Hours, Minutes, Seconds;

};

class TimeDate:public Date, public Time

{

public:

TimeDate():Date() {}

TimeDate(int y, int mo, int d, int h, int mi, int s):Date(y, mo, d), Time(h, mi, s) {}

void GetStringDT(string80 &DTstr)

{

sprintf(DTstr, "%d/%d/%d;%d:%d:%d", Year, Month, Day, Hours, Minutes, Seconds);

}

};

void main()

{

TimeDate date1, date2(1998, 8, 12, 12, 45, 10);

string80 DemoStr;

date1.SetDate(1998, 8, 7);

date1.SetTime(10, 30, 45);

date1.GetStringDT(DemoStr);

cout<<"The date1 date and time is:"<<DemoStr<<endl;

date1.GetStringDate(DemoStr);

cout<<"The date1 date is:"<<DemoStr<<endl;

date1.GetStringTime(DemoStr);

cout<<"The date1 time is:"<<DemoStr<<endl;

date2.GetStringDT(DemoStr);

cout<<"The date2 date and time is:"<<DemoStr<<endl;

}

该程序中,对象的数据成员的值是通过成员函数获取数据成员的字符串,然后再使用输出语句进行输出的。

2001-8-29 10:41

附带《C++面向对象基础教程》

文件下载: 点击下载 [114KB],[rar格式,下载 Winrar300sc ]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航