实验三 派生类与继承

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三派生类与继承

一、实验目的

1、学习类的继承,能够定义和使用类的继承关系。

2、学习派生类的声明与定义方法。

3、掌握类的定义和对象的声明。

4、熟悉公有派生和私有派生的访问特性。

5、掌握派生类构造函数和析构函数的执行顺序。

6、掌握利用访问声明调整基类成员在派生类中的访问属性。

二、试验内容

1、下面的程序可以输出ASCII字符与所对应的数字的对照表。修改下列程序,使其可以输出字母a到z(或任意两个字符间)与所对应的数字的对照表。class table

{

public:

table(int p)

{

i=p;

}

void ascii(void);

protected:

int i;

};

void table::ascii(void)

{

int k=1;

for (;i<127;i++)

{

cout<

if((k)%12==0)

cout<<"\n";

k++;

}

cout<<"\n";

}

class der_table:public table

{

public:

der_table(int p,char *m):table(p)

{

c=m;

}

void print(void);

protected:

char *c;

};

void der_table::print(void)

{

cout<

table::ascii();

}

int main()

{

der_table obl(32,"ASCII value---char");

obl.print();

return 0;

}

提示:修改后的主程序为:

int main()

{

der_table ob('a','z',"ASCII value---char");

ob.print();

return 0;

}

#include

class table

{

public:

table(int p)

{

i=p;

}

void ascii(void);

protected:

int i;

};

void table::ascii(void)

{

int k=1;

for (;i<123;i++)

{

cout<

if((k)%12==0)

cout<

k++;

}

cout<

}

class der_table:public table

{

public:

der_table(int p,char *m):table(p)

{

c=m;

}

void print(void);

protected:

char *c;

};

void der_table::print(void)

{

cout<

table::ascii();

}

int main()

{

der_table ob('a',"ASCII value---char");

ob.print();

return 0;

}

2、已有类Time和Date,要求设计一个派生类Birthtime,它继承类Time 和Date,并且增加一个数据成员Childname用于表示小孩的名字,同事设计主程序显示一个小孩的出生时间和名字。

#include

#include

class Time

{

public:

Time(int h,int m, int s)

{

hours=h;

minutes=m;

seconds=s;

}

void display()

{

cout<<"出生时间:"<

}

protected:

int hours,minutes,seconds;

};

class Date

{

public:

Date(int m,int d,int y)

{

month=m;

day=d;

year=y;

}

void display()

{

cout<<"出生年月:"<

}

protected:

int month,day,year;

};

class Birthtime:public Date,public Time

{

public:

Birthtime(char *name,int mon,int d,int y,int h,int m,int s):Date(mon,d,y),Time(h,m,s)

{

Childname=new char[strlen(name)+1];

strcpy(Childname,name);

}

~Birthtime()

{

delete []Childname;

}

void print()

{

cout<<"小孩的名字是:"<

Date::display();

Time::display();

}

private:

char *Childname;

};

void main()

{

Birthtime a("lihua",12,2,1993,8,34,23);

a.print();

}

相关文档
最新文档