实验三 派生类与继承
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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(); }