欢迎来到天天文库
浏览记录
ID:56125390
大小:195.00 KB
页数:13页
时间:2020-06-20
《C++实验类和对象.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二类和对象实验课程名:面向对象程序设计(C++)专业班级:09计算机科学与技术(2)班学号:姓名:实验时间:实验地点:K4-102指导教师:一、实验目的和要求(1)掌握派生类的声明方法和派生类构造函数的定义方法。(2)掌握不同继承方式下,基类成员在派生类中的访问属性。(3)掌握在继承方式下,构造函数与析构函数的执行顺序与构造规则。(4)学习虚基类在解决二义性问题中的作用。二、实验内容 (一)输入下列程序#includeusingnamespacestd;classBase{public:voidsetx(inti
2、){x=i;}intgetx(){returnx;}public:intx;};classDerived:publicBase{public:voidsety(inti){y=i;}intgety(){returny;}voidshow(){cout<<"Base::x="<3、4、的基础上,将派生类Derived的继承方式改为protected时,会出现哪些错误?为什么?解答:(1)运行结果:(2)调试中出错的原因:①将基类Base中数据成员x的访问权限改为private时,出现错误“errorC2248:'x':cannotaccessprivatememberdeclaredinclass'Base'”。在公有继承中,内部访问和对象访问均不能访问基类Base的私有成员x。②将基类Base中数据成员x的访问权限改为protected时,出现错误“errorC2248:'x':cannotaccessprivat5、ememberdeclaredinclass'Base'”。在公有继承中,对象访问不能访问基类Base的保护成员x。③在源程序的基础上,将派生类Derived的继承方式改为private时,出现错误“errorC2248:'x':cannotaccessprivatememberdeclaredinclass'Base'”。在私有继承中,对象访问不能访问基类Base的公有成员x,setx(inti),getx()。④在源程序的基础上,将派生类Derived的继承方式改为protected时,出现错误“errorC2248:'x':can6、notaccessprivatememberdeclaredinclass'Base'”。在保护继承中,对象访问不能访问基类Base的公有成员x,setx(inti),getx()。(二)编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。供参考的类结构如下:classPerson{...};classStudent:publicPers7、on{...};classTeacher:publicPerson{...};(1)程序代码#include#includeusingnamespacestd;classperson{private:intno;stringname;stringssex;intage;public:voidinput(){cout<<"请输入编号和姓名:";cin>>no>>name;cout<<"请输入性别和年龄:";cin>>ssex>>age;}voiddisplay(){cout<<"编号:"<8、dl;cout<<"姓名:"<
3、4、的基础上,将派生类Derived的继承方式改为protected时,会出现哪些错误?为什么?解答:(1)运行结果:(2)调试中出错的原因:①将基类Base中数据成员x的访问权限改为private时,出现错误“errorC2248:'x':cannotaccessprivatememberdeclaredinclass'Base'”。在公有继承中,内部访问和对象访问均不能访问基类Base的私有成员x。②将基类Base中数据成员x的访问权限改为protected时,出现错误“errorC2248:'x':cannotaccessprivat5、ememberdeclaredinclass'Base'”。在公有继承中,对象访问不能访问基类Base的保护成员x。③在源程序的基础上,将派生类Derived的继承方式改为private时,出现错误“errorC2248:'x':cannotaccessprivatememberdeclaredinclass'Base'”。在私有继承中,对象访问不能访问基类Base的公有成员x,setx(inti),getx()。④在源程序的基础上,将派生类Derived的继承方式改为protected时,出现错误“errorC2248:'x':can6、notaccessprivatememberdeclaredinclass'Base'”。在保护继承中,对象访问不能访问基类Base的公有成员x,setx(inti),getx()。(二)编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。供参考的类结构如下:classPerson{...};classStudent:publicPers7、on{...};classTeacher:publicPerson{...};(1)程序代码#include#includeusingnamespacestd;classperson{private:intno;stringname;stringssex;intage;public:voidinput(){cout<<"请输入编号和姓名:";cin>>no>>name;cout<<"请输入性别和年龄:";cin>>ssex>>age;}voiddisplay(){cout<<"编号:"<8、dl;cout<<"姓名:"<
4、的基础上,将派生类Derived的继承方式改为protected时,会出现哪些错误?为什么?解答:(1)运行结果:(2)调试中出错的原因:①将基类Base中数据成员x的访问权限改为private时,出现错误“errorC2248:'x':cannotaccessprivatememberdeclaredinclass'Base'”。在公有继承中,内部访问和对象访问均不能访问基类Base的私有成员x。②将基类Base中数据成员x的访问权限改为protected时,出现错误“errorC2248:'x':cannotaccessprivat
5、ememberdeclaredinclass'Base'”。在公有继承中,对象访问不能访问基类Base的保护成员x。③在源程序的基础上,将派生类Derived的继承方式改为private时,出现错误“errorC2248:'x':cannotaccessprivatememberdeclaredinclass'Base'”。在私有继承中,对象访问不能访问基类Base的公有成员x,setx(inti),getx()。④在源程序的基础上,将派生类Derived的继承方式改为protected时,出现错误“errorC2248:'x':can
6、notaccessprivatememberdeclaredinclass'Base'”。在保护继承中,对象访问不能访问基类Base的公有成员x,setx(inti),getx()。(二)编写一个学生和教师的数据输入和显示程序。学生数据有编号、姓名、性别、年龄、系别和成绩,教师数据有编号、姓名、性别、年龄、职称和部门。要求将编号、姓名、性别、年龄的输入和显示设计成一个类Person,并作为学生类Student和教师类Teacher的基类。供参考的类结构如下:classPerson{...};classStudent:publicPers
7、on{...};classTeacher:publicPerson{...};(1)程序代码#include#includeusingnamespacestd;classperson{private:intno;stringname;stringssex;intage;public:voidinput(){cout<<"请输入编号和姓名:";cin>>no>>name;cout<<"请输入性别和年龄:";cin>>ssex>>age;}voiddisplay(){cout<<"编号:"<8、dl;cout<<"姓名:"<
8、dl;cout<<"姓名:"<
此文档下载收益归作者所有