第4章 继承与派生习题 参考答案
更新时间:2023-09-15 09:09:01 阅读量: 资格考试认证 文档下载
- 第4章一元一次方程推荐度:
- 相关推荐
第4章继承与派生习题参考答案
一、选择题(共30分,每题1分)
1 D 11 D 21 D
2 C 12 C 22 C 3 C 13 B 23 D 4 B 14 A 24 C 5 D 15 A 25 C 6 A 16 A 26 D 7 B 17 B 27 B 8 B 18 B 28 A 9 D 19 A 29 B 10 C 20 C 30 C 二、填空题(共17分,每空1分)
1. 基类
2. (1)派生类 (2)派生类中子对象类 (3)基类 3. (1)c1、b2、b3、A2、A3 (2)c2 (3)c3 4. (1)基类 (2)派生类 5. ~A() {cout<<\6. A(aa),c(aa+1) 或 c(aa+1), A(aa) 7. (1)公有成员 (2)公有和保护成员
8. (1)保护 (2)成员函数 (3)不可访问
三、改错题(共6分,每题2分)
1. 保护继承方式使基类的public成员在派生类中的访问属性变为protected,所以派生类Rectangle的对象r不能直接访问基类的成员函数move()、getx()和gety()。其改正方法有两种:
1)将Rectangle的继承方式改为公有继承class Rectangle: public Point;
2)在Rectangle类中重定义move(),getx()和gety()函数,覆盖基类的同名函数。 void Rectangle::move(intxoffset,intyoffset){Point::move(xoffset,yoffset);} void Rectangle::getx(){return Point::getx();} void Rectangle::gety(){return Point::gety();}
2. 分析:类A、B中有同名公有数据成员x和同名成员函数display(),在主函数中访问对象myc的数据成员x是无法确定是访问从A中继承的还是从B中继承的x;调用成员函数也是如此,无法确认是调用类A中的还是类B中的,产生二义性。 改正方法,可以用作用域区分符加以限定,如改成: myc.A::x=10; myc.A::display();
或 myc.B::x=10; myc.B::display(); 3.
#include
};
int main()
{ MyClass *obj=new MyClass(10);
cout<<\ return 0; }
public:
int value;
Member(int val):value(val){ } };
class MyClass{ Member _m; public : MyClass(int val):_m(val){ } int getValue() const { return _m.value;}
四、看程序写结果(共24分,每题3分)
1.
n=8,m=13,p=24 j=8,i=13,aa.i=24
2.
3.
4.
5.
6. 输出: 21
7. 输出: ABA~B~A~A
8. 输出: PDS
五、编程题(共23分)
1.定义一个国家基类Country,包含国名、首都、人口等属性,派生出省类Province,增加省会城市、人口数量属性。
#include
public: Country(char cn[],char ct[],int pc) { strcpy(countryName,cn); strcpy(captal,ct); personCount=pc; }
void show1() { cout<<\ cout< class Province :public Country { public: Province(char cn[],char ct[],int pc,char ci[],int propc):Country(cn,ct,pc) { strcpy(city,ci); proPersonCount=propc; } void show2() { show1(); cout<<\ cout< void main() { Province p(\美国\华盛顿\洛杉矶\ p.show2(); } 2. 建立一个基类Building类,用来存储楼房的层数、房间数和总面积,由基类派生出教学楼TeachBuilding类和宿舍楼DormBuilding类,教学楼增加教室数,宿舍楼类增加宿舍数、容纳学生总人数。编写应用程序,建立教学楼对象和宿舍楼对象,并输出它们的有关数据信息。 程序代码: #include class Building{ public: Building(int f,int r,double a) { floors=f; rooms=r; area=a; } protected: int floors; int rooms; double area; }; class TeachBuilding:public Building{ public: TeachBuilding (int f,int r,double a,int cr):Building(f,r,a){ classrooms=cr; } void show() { cout<<\ rooms=\ area=\ <<\ classrooms=\ } private: int classrooms; }; class DormBuilding:public Building{ public: DormBuilding (int f,int r,double a,int d,int sc) :Building(f,r,a) { dormitories =d; studcount =sc; } void show() { cout<<\ rooms=\ area=\ <<\ dormitories=\ studcount=\ < int dormitories; int studcount; }; int main() { TeachBuilding TB(6, 80,200,35); TB.show(); DormBuilding DB(6, 80,200,35,300); DB.show(); return 0; } 3.定义一个Point类,派生出矩形类Rectangle和圆类Circle,计算各派生类对象的面
正在阅读:
第4章 继承与派生习题 参考答案09-15
小升初冲刺阶段奥数学习的关键03-30
2022年小升初语文答题技巧(基础知识)03-30
2022沈阳小升初奥数学习总攻略03-30
六年级英语完型填空本领(六年级英语完形填空训练及答案)03-30
2022年提高小升初学习方法必备03-30
福建省绿色设计申报表05-23
- 梳理《史记》素材,为作文添彩
- 2012呼和浩特驾照模拟考试B2车型试题
- 关于全面推进施工现场标准化管理实施的通知(红头文件)
- 江西省房屋建筑和市政基础设施工程施工招标文件范本
- 律师与公证制度第2阶段练习题
- 2019-2020年最新人教版PEP初三英语九年级上册精编单元练习unit6训练测试卷内含听力文件及听力原文
- 小升初数学模拟试卷(十四) 北京版 Word版,含答案
- 认识创新思维特点 探讨创新教育方法-精选教育文档
- 00266 自考 社会心理学一(复习题大全)
- 多媒体在语文教学中的运用效果
- 派出所派出所教导员述职报告
- 低压电工作业考试B
- 18秋福建师范大学《管理心理学》在线作业一4
- 中国铝业公司职工违规违纪处分暂行规定
- 13建筑力学复习题(答案)
- 2008年新密市师德征文获奖名单 - 图文
- 保安员培训考试题库(附答案)
- 银川市贺兰一中一模试卷
- 2011—2017年新课标全国卷2文科数学试题分类汇编 - 1.集合
- 湖北省襄阳市第五中学届高三生物五月模拟考试试题一
- 派生
- 习题
- 继承
- 答案
- 参考
- 20米箱梁预制施工方案
- 建设工程项目管理交底书
- 连锁经营管理试题及答案 - 图文
- 低压电工电脑答题复审取证国家题库(必过)整理版
- 高斯输入文件的说明
- 北京市第七届中小学生气象知识竞赛题及答案
- 法国泰康单相制冷压缩机接线分析 - 图文
- 职称英语:补全短文练习(二)
- 2014年最新版自考财务管理学(00067)复习资料
- 高中数学高考知识点总结
- 北京大学学生会常务代表委员会会长团和执行委员会主席团选举组织条例
- 计算题2
- 高中语文课本剧教学模式研究
- 2012级长安大学马原作业一到作业三的大题答案
- 中学生时事政治竞赛获奖简报
- 精选高中数学第2章函数2.3映射的概念练习苏教版必修1
- 财务报表分析在企业财务管理中的作用
- 语用学(期末)
- Windows - 2008 - WDS部署服务 - 图文
- 中西方饮食文化差异比较分1