




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
虚函数部分习题一 简答题1 什么叫多态性?C+中是如何实现多态性的?2 在c+中,能否声明虚构造函数?为什么?能否声明虚析构函数?有何用途?3 什么叫做抽象类?抽象类有何作用?二选择1关于动态联编的下列描述中, 是错误的。A. 动态联编是以虚函数为基础的B. 动态联编是在运行时确定所调用的函数地址的C. 动态联编调用函数操作是指向对象的指针或对象引用D. 动态联编是在编译时确定操作函数的2关于虚析构函数的下述描述中, 是错误的。A 基类中析构函数为虚析构函数,则派生类中的析构函数也为虚析构函数。B 虚析构函数能保证delete运算符有效的释放基类及派生类对象。C 将析构函数定义为虚析构函数是因为类中有虚函数。D 虚析构函数并不能实现动态联编。3关于纯虚函数和抽象类的描述中, 是错误的。A. 纯虚函数没有函数体。B. 抽象类及其派生类都可以定义对象。C. 若某个成员函数为纯虚函数,则该类为抽象类。D. 抽象类通常在类结构的顶层。三分析程序的运行结果,并上机验证。1# include class XXprotected:int k;public: XX ( int n = 5 ) : k (n) XX ( ) cout “XX”; virtual void f ( ) ; ;void XX : f ( ) cout k +3;class YY : public XX public : YY ( ) cout “YY”; void f ( ) cout f (); delete p; return 0;2#include stdafx.hclass Apublic:virtual A()coutA:An;class B:public Apublic:B()coutB:Bn;void main()A *a1;A *a2=new B();B b;a1=&b;3 #include class Apublic:virtual A( ) coutA n; ;class B : public Apublic:B(int i) buf = new chari; virtual B( )delete buf;coutBn;private:char * buf;void fun(A *a)delete a;void main( )A *a = new B(5);fun(a);4#includeiostream.hclass Apublic:virtual void print()=0;virtual A()coutA:An;class B:public Apublic:B()coutBendl;void print()coutclass Bendl;B()coutB:Bn;class C:public Apublic:C()coutCendl;void print()coutclass Cendl;C()coutC:Cn;class D:public C,public Bpublic:D()coutDendl;void print()coutclass Dendl;D()coutprint();pb-print();delete pa;5下列程序中声明一个Mammal类,再由此派生出Dog类,二者都定义Speak()成员函数,基类中定义Speak()为虚函数。主程序中分别声明一个Mammal类和Dog类的对象,再分别用对象名.函数名和指针的形式调用Speak()函数。请填空完成程序,并上机运行验证。#include”iostream.h”Class MammalPublic: _(1)_void Speak()cout”This is a Mammal!”endl;Class Dog:public MammalPublic:void Speak()cout”this is a Dog!”Speak();_(3)_;ptr-Speak();6. #include class A public:virtual void f1() coutAs f1().n;void f2() coutAs f2().n; f1();class B:public A public:virtual void f1() coutBs f1().n; virtual void f2() cout*paf1)();pa=&b; (pa-*paf1)();(pa-*paf2)();(b.*paf2)();(b.*pbf2)();7#include iostream.hclass Apublic: virtual void f() coutA:fn; void h()coutA:hendl; virtual A();class B:public A public: B()virtual B() f(); void f()coutB:fendl; void h()coutB:hendl;class C:public B public: virtual C() f(); void f()couth();aa-f();void main() B b;A *pa=new C();g(&b);g(pa);delete pa;8. #includeiostream.hclass Apublic:virtual void print()=0;virtual A()coutA:An;class B:public Apublic:B()coutBendl;void print()coutclass Bendl;B()coutB:Bn;class C:public Apublic:C()coutCendl;void print()coutclass Cendl;C()coutC:Cn;class D:public B,public Cpublic:D()coutDendl;void print()coutclass Dendl;D()coutprint();pb-print();delete pa;三 编程题1 有一个汽车类vehicle,将它作为基类派生出小汽车类car,卡车类truck和轮船类boat,定义这些类并声明一个虚函数用来显示各类信息。2 声明一个Shape 抽象类,在此基础上派生出Rectangle和Circle类,二者都通过GetArea()函数计算对象的面积,通过GetPerim()函数计算对象的周长。3 有以下类的结构: 类名S 类名 uS1 类名 uS2 类名gS设一般中等学校的学生类S,对其考核的课程有数学成绩 m ,英语成绩 e ,高等学校的机械专业学生类uS1考核的课程除数学、英语外还有机械设计r ,高等学校管理专业学生类uS2考核的课程除数学、英语外还有现代管理理论成绩a ,gS为攻读双学位学生类,考核课程除此之外还应考核论文成绩 i ,成员函数sum 将学生各科成绩相加,并将学生姓名及成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司春节互动活动方案
- 公司短视频小组活动方案
- 公司狂欢夜活动方案
- 2025年育儿嫂职业技能鉴定考试试题及答案
- 2025年网络信息安全法考试试题及答案
- 2025年现代生物技术专业水平考试试卷及答案
- 2025年特殊儿童教育教师资格考试试题及答案
- 2025年企业形象设计师资格考试试题及答案
- 2025年领导力与团队建设专业知识测试卷及答案
- 2025年大爱事业发展与慈善管理考试试卷及答案
- GB/T 44914-2024和田玉分级
- 2025 年海南省中考语文试题:作文试题及范文
- 电机学知到智慧树章节测试课后答案2024年秋东北电力大学
- 净水器安装协议书
- 2019北师大版高中英语单词表全7册
- 国开《当代中国政治制度》形考任务1-4参考答案
- 2024年借贷担保合同
- 宁夏固原市第六中学2022-2023学年七年级上学期分班考试语文检测卷
- 《电工与电子技术基础(第4版)》中职全套教学课件
- 北师大版生物八年级下册23章1节生物的生存依赖一定的环境(44张)课件-课件
- 2024年工业废水处理工(高级)技能鉴定考试题库-下(多选、判断题)
评论
0/150
提交评论