C++第四次实验报告.docx
《C++第四次实验报告.docx》由会员分享,可在线阅读,更多相关《C++第四次实验报告.docx(15页珍藏版)》请在冰点文库上搜索。
C++第四次实验报告
姓名缪佳能
学号
22201433210187
实验项目
派生类与继承
实验目的和内容
#include
classPerson
{
char*name;
char*sex;
intage;
public:
Person(char*n,char*s,inta)
{
name=n;
sex=s;
age=a;
}
~Person()
{
delete[]name;
}
voidprint()
{
cout<<"姓名:
"<"<"<}
};
classStudent:
publicPerson
{
char*sno;
char*xi;
doublefen;
public:
Student(char*sn,char*x,doublef,char*n,char*s,inta):
Person(n,s,a)
{
sno=sn;
xi=x;
fen=f;
}
voidprint()
{
cout<<"学生的编号:
"<"<"<Person:
:
print();
}
};
classTeacher:
publicPerson
{
char*num;
char*job;
intdepart;
public:
Teacher(char*nu,char*j,intd,char*n,char*s,inta):
Person(n,s,a)
{
num=nu;
job=j;
depart=d;
}
voidprint()
{
cout<<"老师的编号:
"<"<"<Person:
:
print();
}
};
intmain()
{
Studentm("122515","ji",98,"li","gril",21);
m.print();
Teacherb("12","math",98,"wang","gril",35);
b.print();
return0;
}
{
程序实现和结果分析:
1.
2.
3.
1).
2).
3).
4).
5).
程序分和设计
第三题:
定义一个基类,用指针作为数组名,定义一个数组,在定义各个基类,分别实现求平均值,排序,倒置的功能。
在调用成员时由于各个派生类都有基类的成员input,output,故用虚基类,避免出现二异性。
队列具有先进先出的特点,所有新来的元素都放在队列尾部,出队列的元素从队列头部出去。
栈具有后进先出的特点,所有入栈的元素都放在栈顶,出栈时栈顶元素先出。
这两种结构具有很多相似的地方:
都存放了一系列的元素,元素的操作都在两头进行,元素个数都是动态可变的。
我们可以设计一个基类,完成它们共同的功能,然后分别派生出队列类和栈类。
这样可以减少代码,提高效率。
设计的基类也可以用于派生出其他
运行结果
结果已在上面
实验总结
本次实验较为复杂,按照书本的知识编辑的。
暴露平时学的少的问题,程序看的少的问题,自己下来要多去看派生类与继承的关系,不同继承方式下的访问属性。
二义性的问题,以及继承方式下的构造函数与析构函数的执行顺序与构造规则等知识。
太多的知识需要我去学习。