洛阳理工学院实验报告
系别计算机与信班级B11050学号
B11050姓名
息工程系
课程名称C面向对象与程序设计实验日期
2013108
实验名称
派生类与继承
成绩
实验目的:1、掌握派生类的声明方法和派生类构造函数的定义方法;2、掌握不同继承方式下,基类成员在派生类中的访问属性;3、掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则;4、学习虚基类在解决二义性问题中的作用。
实验条件:装有MicrosoftVisualC60软件的计算机
实验内容:1输入下列程序。test4_1cppi
cludeiostreamusi
g
amespacestdclassBasepublic
voidsetxi
tixiI
tgetxretur
xpublici
txclassDerivedpublicBasepublicvoidsetyi
tiyii
tgetyretur
yvoidshowcout”Basex”xe
dlpublici
ty
fi
tmai
Derivedbbbbsetx16bbsety25bbshowcout”Basex”bbxe
dlcout”Derivedy”bbye
dlcout”Basex”bbgetxe
dlcout”Derivedy”bbgetye
dlretur
0
写出程序的运行结果。
f2按以下要求,对程序进行修改后再调试,指出调试中出错的原因。①将基类Base中数据成员x的访问权限改为private时,会出现哪些错误?为什
么?②将基类Base中数据成员x的访问权限改为protected时,会出现哪些错误?为
什么?③在源程序的基础上,将派生类Derived的继承方式改为private时,会出现哪些
错误?为什么?④在源程序的基础上,将派生类Derived的继承方式改为protected时,会出现哪
些错误?为什么?
解答如下;①将基类Base中数据成员x的访问权限改为private时,会出现哪些错误?为什
么?
因为基类Base中数据成员x的访问权限改为private时,基类的私有成员在派生类中并没有成为派生类的私有成员使得再通过派生类的对象调用x时,不能被系统所识别,出现了错误。
②将基类Base中数据成员x的访问权限改为protected时,会出现哪些错误?为什么?
因为基类Base中数据成员x的访问权限改为protected时,公用基类的保护成员在公用派生类中的访问属性仍然是保护,在公用派生类外就不能通过公用派生类的对象访问该成员,所以出现了错误。
f③在源程序的基础上,将派生类Derived的继承方式改为private时,会出现哪些错误?为什么?
将派生类Derived的继承方式改为private时,私有基类中的公用成员在私有派生类中的访问属性为私有,在类外不能通过对象调用私有成员,只能通过成员函数调用
④在源程序的基础上,将派生类Derived的继承方式改为protected时,会出现哪些错误?为什么?
因为私有继承时基r