实验六继承性与多态性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖北工业大学工程技术学院实验报告
课程名称:面向对象程序设计实验内容:实验六继承性与多态性
学院:工程技术学院专业班级:
姓名:学号:指导教师:
实验日期:实验地点:
一、实验目的
1、1、了解多态性的概念。
2、2、了解虚函数的作用及使用方法。
3、3、了解纯虚函数和抽象类的概念和用法。
二、实验步骤
1.设计一个类层次,其中的基类为Date,它拥有一个相关数据成员及一个虚函
数print,从Date类派生ShortE、MediumDate和LongDate类,Date的print 函数使用日期格式:11-26-2015,
ShortE的print函数使用日期格式:26-11-2015
MediumDate的print函数使用日期格式:Nov.26,2015
LongDate的print函数使用日期格式:November 26, 2015
编写一个程序来测试各个类的print函数。
#include
using namespace std;
class Date
{
protected:
int year,month,day;
public:
Date(int y,int m,int d)
{
year=y;
month=m;
day=d;
}
virtual void print()
{
cout< } }; class ShortE:public Date { public: ShortE(int y,int m,int d):Date(y,m,d){} void print() { cout< } }; class MediumDate:public Date { public: MediumDate(int y,int m,int d):Date(y,m,d){} void print() { switch(month) { case 1:cout<<"Jap.";break; case 2:cout<<"Feb.";break; case 3:cout<<"Mar.";break; case 4:cout<<"Apr.";break; case 5:cout<<"May.";break; case 6:cout<<"Jun.";break; case 7:cout<<"Jul.";break; case 8:cout<<"Aug.";break; case 9:cout<<"Sep.";break; case 10:cout<<"Oct.";break; case 11:cout<<"Nov.";break; case 12:cout<<"Dec.";break; default:cout<<"error"; } cout< } }; class LongDate:public Date { public: LongDate(int y,int m,int d):Date(y,m,d){} void print() { switch(month) { case 1:cout<<"January.";break; case 2:cout<<"February.";break; case 3:cout<<"March.";break; case 4:cout<<"April.";break; case 5:cout<<"May.";break; case 6:cout<<"June.";break; case 7:cout<<"July.";break; case 8:cout<<"August.";break; case 9:cout<<"September.";break; case 10:cout<<"October.";break; case 11:cout<<"November.";break; case 12:cout<<"December.";break; default:cout<<"error"; } cout< } }; void main() { Date d1(2015,11,26),*d; ShortE d2(2015,11,26); MediumDate d3(2015,11,26); LongDate d4(2015,11,26); d=&d1; d->print(); d=&d2; d->print(); d=&d3; d->print(); d=&d4; d->print(); } 写出实验步骤、调试记录和实验结果: