面向对象派生类与继承实验三Word格式.docx
- 文档编号:4605668
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:16
- 大小:189.43KB
面向对象派生类与继承实验三Word格式.docx
《面向对象派生类与继承实验三Word格式.docx》由会员分享,可在线阅读,更多相关《面向对象派生类与继承实验三Word格式.docx(16页珍藏版)》请在冰点文库上搜索。
要求包括:
构造函数和析构函数、拷贝构造函数、内联成员函数。
从people(人员)类派生出student(学生)类,添加属性:
班号charclassNo[7];
从people类派生出teacher(教师)类,添加属性:
职务charprincipalship[11]、部门chardepartment[21]。
从student类派生出graduate(研究生)类,添加属性:
专业charsubject[21]、导师teacheradviser;
从graduate类和teacher类派出TA(助教生)类,注意虚基类的使用。
重载相应的成员函数,测试这些类。
三、实验环境
联想计算机,WindowsXP操作系统,VisualC++6.0
四、算法描述及实验步骤
(1)编写源程序。
(2)检查程序有无错误(包括语法错误和逻辑错误),有则改之。
(3)编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。
(4)运行程序,分析结果。
(5)将调试好的程序保存在自己的用户目录中,文件名自定。
五、调试过程
1.
2.
3.
4
六、实验结果
4.
附录:
1.#include<
iostream>
usingnamespacestd;
classAnimal
{
public:
intage;
};
classdog:
publicAnimal
voidSetAge(intn)
{
age=n;
}
voiddisplay();
voiddog:
:
display()
{
cout<
<
"
thisdogis"
age<
years."
endl;
intmain()
dogd;
d.SetAge(5);
d.display();
return0;
2.#include<
usingnamespacestd;
classBaseClass
public:
BaseClass(inti)
{
Number=i;
cout<
Number="
Number<
}
~BaseClass()
destructingBaseClass"
private:
intNumber;
};
classDerivedClass:
publicBaseClass
DerivedClass(inti,intj);
~DerivedClass();
intb;
DerivedClass:
DerivedClass(inti,intj):
BaseClass(i)
b=j;
b="
b<
~DerivedClass()
cout<
destructingDerivedClass"
DerivedClassx(5,6);
3.#include<
classvehicle
{protected:
floatMaxSpeed,Weight;
public:
voidRun();
voidStop();
classbicycle:
virtualpublicvehicle
{public:
floatheight;
voidseta(intx){MaxSpeed=x;
}
classmotorcar:
{
voidsetb(intx){MaxSpeed=x;
intSeatNum;
classmotorcycle:
publicbicycle,publicmotorcar
voidshow()
"
MaxSpeedofbicycle="
bicycle:
MaxSpeed<
cout<
MaxSpeedofmotorcar="
motorcar:
intmain()
motorcyclem;
m.seta
(2);
m.show();
m.setb(3);
return0;
4.#include<
#include<
string>
classdate
intyear,mouth,day;
friendclassPeople;
classPeople
stringnumber,sex;
char*id;
datebirthday;
People(stringnumber="
ren"
stringsex="
nan"
char*idd="
00008"
):
number(number),sex(sex)
id=newchar[strlen(idd)+1];
if(id)strcpy(id,idd);
People(constPeople&
p);
inlinevoidsetyear(inty)
birthday.year=y;
inlinevoidsetmouth(intm)
birthday.mouth=m;
inlinevoidsetday(intd)
birthday.day=d;
inlineintgetyear()
returnbirthday.year;
inlineintgetmouth()
returnbirthday.mouth;
inlineintgetday()
returnbirthday.day;
inlinestringgetnumber()
returnnumber;
inlinevoiddisplay();
~People();
People:
People(constPeople&
p)
number=p.number;
sex=p.sex;
birthday.day=p.birthday.day;
birthday.mouth=p.birthday.mouth;
birthday.year=p.birthday.year;
id=newchar[strlen(p.id)+1];
if(id)strcpy(id,p.id);
voidPeople:
人员的编号是:
number<
人员的性别是:
sex<
人员的出生年月是:
getyear()<
--"
getmouth()<
getday()<
~People()
if(id!
=NULL)
deleteid;
id=NULL;
classstudent:
virtualpublicPeople
charclassNo[7];
student(stringnumber="
student1"
char*id="
char*CN="
00001"
People(number,sex,id)
strcpy(classNo,CN);
char*getclassNo();
char*student:
getclassNo()
char*cn;
cn=classNo;
returncn;
classteacher:
charprincipalship[11];
chardepartment[21];
teacher(stringnumber="
haihai"
char*pp="
banzhuren"
char*dm="
jisuanji"
strcpy(principalship,pp);
strcpy(department,dm);
char*getprincipalship();
char*getdepartment();
char*teacher:
getprincipalship()
cn=principalship;
getdepartment()
cn=department;
classgraduate:
publicstudent
charsubject[21];
teacheradviser;
graduate(stringnumber="
007"
char*sb="
chengxu"
student(number,sex,id,CN),People(number,sex,id)
strcpy(subject,sb);
char*getsubject();
stringgetNumber()
returnadviser.getnumber();
char*graduate:
getsubject()
cn=subject;
classTA:
publicteacher,publicgraduate
intn;
TA(stringnumber="
teacher(number,sex,id,pp,dm),graduate(number,sex,id,CN,sb),People(number,sex,id){}
voidprintfall();
voidTA:
printfall()
请输入学生的出生年份"
cin>
>
n;
setyear(n);
请输入学生的出生月份"
setmouth(n);
请输入学生的出生的具体哪一天"
setday(n);
助教类(TA)中访问学生类(student)的成员"
display();
班号为:
getclassNo()<
助教类(TA)中访问教师类(teacher)的成员"
教师的职务:
getprincipalship()<
教师所在的部门:
getdepartment()<
助教类(TA)中访问研究生类(graduate)的成员"
研究生的专业是:
getsubject()<
研究生的导师是:
getNumber()<
TAta;
ta.printfall();
七、总结
了解派生类的声明与定义方法、类的继承的概念,熟练定义和使用类的继承关系;
熟练解决在虚基类中出现的二义性问题,公有派生和私有派生的访问特性的使用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 派生 继承 实验