欢迎来到天天文库
浏览记录
ID:37862321
大小:3.44 MB
页数:19页
时间:2019-06-01
《201140410128+杨衡+实验二-派生类与继承》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二派生类与继承实验课程名:面向对象程序设计(C++)专业班级:11计科(1)班学号:姓名:实验时间:4.17实验地点:K4-203指导教师:2.1实验目的和要求(1)掌握派生类的声明方法和派生类构造函数的定义方法。(2)掌握不同继承方式下,基类成员在派生类中的访问属性。(3)掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。(4)学习虚基类在解决二义性问题中的作用。 2.2实验内容与步骤·1.输入下列程序。//test4_1.cpp#includeusingnamespacestd;classBase{public:void
2、setx(inti){x=i;}intgetx(){returnx;}public:intx;};classDerived:publicBase{public:voidsety(inti){y=i;}intgety(){returny;}voidshow(){cout<<"Base::x="<3、endl;cout<<"Base::x="<4、ected时,会出现哪些错误?为什么?因为基类Base中数据成员x的访问权限改为protected时,公用基类的保护成员在公用派生类中的访问属性仍然是保护,在公用派生类外就不能通过公用派生类的对象访问该成员,所以出现了错误。③在源程序的基础上,将派生类Derived的继承方式改为private时,会出现哪些错误?为什么?将派生类Derived的继承方式改为private时,私有基类中的公用成员在私有派生类中的访问属性为私有,在类外不能通过对象调用私有成员,只能通过成员函数调用.④在源程序的基础上,将派生类Derived的继承方式改为protected时,会5、出现哪些错误?为什么?因为私有继承时基类中的公有函数到派生类中一是私有成员,不能通过对象访问,只能通过成员函数来访问。2.编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。供参考的类结构如下:classPerson{...};classStudent:publicPerson{...};classTeacher:publicPerson{...};程序代码6、:#include#includeusingnamespacestd;classPerson{public:Person(intn,stringnam,chars,inta){num=n;name=nam;sex=s;age=a;}~Person(){}protected:intnum;stringname;charsex;intage;};classStudent:publicPerson{public:Student(intn,stringnam,chars,inta,stringap,intsc):Person(n7、,nam,s,a){apart=ap;score=sc;}voidshow1(){cout<<"num:"<8、cher(intn,stringnam,chars,inta,st
3、endl;cout<<"Base::x="<4、ected时,会出现哪些错误?为什么?因为基类Base中数据成员x的访问权限改为protected时,公用基类的保护成员在公用派生类中的访问属性仍然是保护,在公用派生类外就不能通过公用派生类的对象访问该成员,所以出现了错误。③在源程序的基础上,将派生类Derived的继承方式改为private时,会出现哪些错误?为什么?将派生类Derived的继承方式改为private时,私有基类中的公用成员在私有派生类中的访问属性为私有,在类外不能通过对象调用私有成员,只能通过成员函数调用.④在源程序的基础上,将派生类Derived的继承方式改为protected时,会5、出现哪些错误?为什么?因为私有继承时基类中的公有函数到派生类中一是私有成员,不能通过对象访问,只能通过成员函数来访问。2.编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。供参考的类结构如下:classPerson{...};classStudent:publicPerson{...};classTeacher:publicPerson{...};程序代码6、:#include#includeusingnamespacestd;classPerson{public:Person(intn,stringnam,chars,inta){num=n;name=nam;sex=s;age=a;}~Person(){}protected:intnum;stringname;charsex;intage;};classStudent:publicPerson{public:Student(intn,stringnam,chars,inta,stringap,intsc):Person(n7、,nam,s,a){apart=ap;score=sc;}voidshow1(){cout<<"num:"<8、cher(intn,stringnam,chars,inta,st
4、ected时,会出现哪些错误?为什么?因为基类Base中数据成员x的访问权限改为protected时,公用基类的保护成员在公用派生类中的访问属性仍然是保护,在公用派生类外就不能通过公用派生类的对象访问该成员,所以出现了错误。③在源程序的基础上,将派生类Derived的继承方式改为private时,会出现哪些错误?为什么?将派生类Derived的继承方式改为private时,私有基类中的公用成员在私有派生类中的访问属性为私有,在类外不能通过对象调用私有成员,只能通过成员函数调用.④在源程序的基础上,将派生类Derived的继承方式改为protected时,会
5、出现哪些错误?为什么?因为私有继承时基类中的公有函数到派生类中一是私有成员,不能通过对象访问,只能通过成员函数来访问。2.编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。供参考的类结构如下:classPerson{...};classStudent:publicPerson{...};classTeacher:publicPerson{...};程序代码
6、:#include#includeusingnamespacestd;classPerson{public:Person(intn,stringnam,chars,inta){num=n;name=nam;sex=s;age=a;}~Person(){}protected:intnum;stringname;charsex;intage;};classStudent:publicPerson{public:Student(intn,stringnam,chars,inta,stringap,intsc):Person(n
7、,nam,s,a){apart=ap;score=sc;}voidshow1(){cout<<"num:"<8、cher(intn,stringnam,chars,inta,st
8、cher(intn,stringnam,chars,inta,st
此文档下载收益归作者所有