C++网络作业6答案
- 格式:docx
- 大小:40.59 KB
- 文档页数:18
学习中心/函授站姓名学号西安电子科技大学网络与继续教育学院2022 学年下学期《面向对象程序设计(C++)》期末考试试题(综合大作业)考试说明:1、大作业试题公布时间:(1)毕业班:2022 年10 月21 日;(2)正常班:2022 年11 月18 日;2、考试必须独立完成,如发现抄袭、雷同均按零分计;3、答案须用《西安电子科技大学网络与继续教育学院2022 秋期末考试答题纸》(个人专属答题纸)手写完成,要求字迹工整、卷面干净、整齐;4、在线上传时间:(1)毕业班学生于2022 年10 月21 日至2022 年11 月1 日在线上传大作业答卷;(2)正常班学生于2022 年11 月18 日至2022 年12 月5 日在线上传大作业答卷;5、拍照要求完整、清晰,一张图片对应一张个人专属答题纸(A4 纸),正确上传。
一、简答题(10 分)1、运算符 new 和 delete 的功能分别是什么?(3 分)答案:运算符new的功能是创建动态对象;delete的功能是释放由new创建的动态对象。
2、若派生类以 private 方式从一个基类派生,派生类的对象可以访问基类中的哪些成员?派生类的成员函数可以访问基类中的哪些成员?(3 分)答案:若派生类以private方式从一个基类派生,派生类的对象不能访问基类中的任何成员(1分);派生类的成员函数可以访问基类中的public和protected成员(2分)。
3、构造函数的作用是什么?在创建派生类的对象时,应按照怎样的顺序调用构造函数?(4 分)答案:构造函数的作用是创建对象并对其进行必要的初始化。
(1分)构造函数调用顺序:基类构造函数、子对象类构造函数(如果有)、派生类构造函数。
(2分)二、填空题(每空 2 分,共 20 分)1、函数的返回值是通过函数体中的return语句带回的;若被调用函数被定义为 void 类型,则被调用函数不带回任何值。
2、表示逻辑关系“ a 大于等于8 或者 a 小于等于5”的C++表达式是。
国家开放大学电大《C语言程序设计》网络课形考任务2作业及答案形考任务2一、选择题(共20分,每小题2分)题目1当处理特定问题时的循环次数已知时,通常采用的语句是()。
选择一项:a. for题目2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。
选择一项:b. if题目3for语句能够被改写成的语句是()。
选择一项:d. while题目4下面循环语句执行结束后输出的i值为()。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}选择一项:b. n/2+1题目5在下面循环语句中,内层循环体S语句的执行总次数为()。
for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;选择一项:d. n(n+1)/2题目6在下面的do循环语句中,其循环体被执行的次数为()。
int i=0; do i++; while(i*i<10);选择一项:a. 4题目7在下面的一维数组定义中,有语法错误的选项是()。
c. int a[];题目8在下面的二维数组定义中,语法正确的选项是()。
选择一项:c. int a[][3]={{1,3,5},{2}};题目9假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为()。
选择一项:d. 8题目10假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。
选择一项:a. 0二、判断题(共20分,每小题1分。
叙述正确则回答“是”,否则回答“否”)题目11在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。
教育学网络作业及答案(第一至四套)第一套(A卷)★单选题:>孔子的教育思想主要记载在(C)。
A、中庸B、礼记C、论语D、学记★单选题:>主张“有教无类“的观点的人是(A)。
A、孔予B、孟子C、荀子D、朱熹★单选题:>决定教育事业发展的规模与速度的因素是(A)。
A、生产力B、政治经济制度C、上层建筑D、科学技术★单选题:>下面哪一个不是教育的要素?(C)A.教育者B.学习者C.教育方式D.教育影响★单选题:>马克思主义观点认为,培养全面发展人的唯一方法是(D)。
A、脑力劳动与体力劳动相结合B、城市与农村相结合C、知识分子与工人农民相结合D、教育与生产劳动相结合★单选题:>我国全面发展教育的组成部分是(C)A、高等教育、中等教育、初等教育、学前教育B、正规教育、业余教育C、德育、智育、体育、美育和劳动技术教育D、普通教育、职业教育★单选题:>确定社会主义教育目的的理论基础是(D)。
A、凯洛夫的《教育学》B、巴班斯基的教学最优化思想C、赫尔巴特的《普通教育学》D、马克思主义关于人的全面发展学说★单选题:>儿童身心发展的(A)决定了教育工作必须循序渐进。
A、顺序性B、不平衡性C、阶段性D、个别差异性★单选题:>遗传素质为人的发展提供了(C)。
A、现实性B、必然性C、可能性D、方向性★单选题:>人的身心发展的年龄特征表明了个体的发展具有(B)A.顺序性B.阶段性C.不平衡性D.差异性★单选题:>人类教育赖以存在和发展的决定性力量是(D)。
A.人口环境B.自然环境C.政治制度D.社会生产★单选题:>教育现代化的最高目的是实现(D)A.教育观念现代化B.教育内容现代化C.教育管理现代化D.人的现代化★单选题:>小学阶段相当于身心发展中的(C)A.幼儿期B.少年期C.童年期D.青年初期★单选题:>教育同生产劳动从脱离到逐步结合的转变发生在(C)。
计算机网络作业参考答案CH1 绪论1、什么是计算机网络?它一般由哪些部分组成?答案:请参考教案2、LAN、W AN、MAN的主要区别是什么?要点:主要区别在于下列三点:地理范围或规模、速率、属于什么单位所有3、常用网络操作系统有哪些?如果你想自己组建一个网站,会选用哪种网络操作系统?为什么?参考答案:WINDOWSUNIX/LINUX中小型单位一般用WINDOWS,微机服务器可以选用LINUX,而对可靠性要求较高的场合一般选用UNIX4、目前常用的PSTN、DDN、ISDN、ADSL和HFC几种接入方式中,适合于家庭接入的有哪几种?适合于网吧接入的有哪几种?适合于校园网接入的有哪几种?参考答案:家庭:PSTN,HFC或ISDN网吧:ADSL校园网:DDN5.C/S系统和B/S系统的工作原理;它们之间的主要区别是什么?参考答案:C/S:客户向服务器提出服务请求,服务器处理客户的服务请求,并返回最后的处理结果;B/S:客户通过浏览器向WEB服务器提出服务请求,WEB服务器处理客户的服务请求,并返回最后的处理结果给浏览器;它们之间的主要是B/S模式必须采用浏览器和WEB服务器。
6.请将以下网络术语译成中文:LAN、WAN、MAN、NOS、network、server、client、terminal、host、frame、QoS、virtual circuit、campus network、HFC、ADSL、DDN、Cable Modem、SONET/SDH、PSTN、B-ISDN、PSDN、DQDB、SMDS、ATM、packet switching、circuit switching、cell switching、FDDI、FR、URL、WWW、SMTP、FTP、TCP、UDP、SNMP、MAC 局域网,广域网,城域网,网络操作系统,网络,服务器,客户,终端,主机,帧,服务质量,虚电路,园区网,广纤同轴混合网,非对称用户环线,数字数据网,线缆调制解调器,同步光网/同步数据体系结构,公共电话交换网,宽带---综合业务数据网,分组交换数据网,分布式双环数据总线,交换多兆位数据服务,异步转移模式,分组(报文)交换,线路交换,信元交换,光纤分布式数据接口,帧中继,统一资源地址,万维网,简单邮件传输协同,文件传输协同,传输控制协议,用户数据报协议,简单网络管理协议,介质访问控制7.计算机网络的主要功能是什么?参考答案:见讲义8.计算机网络发展的主要里程碑有哪些?参考答案:见讲义9.填空题1).根据网络连接距离来划分,计算机网络可划分为__LAN__、____MAN___、____W AN__。
通讯与计算机网络在线作业1.【第06章】定义HTML页面的表单,要用HTML标记()。
A <HEAD>B <TITLE>C <FORM>D <P>正确答案:C2.【第06章】定义HTML文档中段落,要用HTML标记是()。
A <P>B <H1>C <FORM>D <HEAD>正确答案:A3.【第0708章】用某种方法把伪装消息还原成原有的内容的过程称为( )。
A 消息B 密文C 解密D 加密正确答案:C4.【第0708章】以下关于防火墙的说法,不正确的是( )。
A 防火墙是一种隔离技术B 防火墙的主要工作原理是对数据包及来源进行检查,阻断被拒绝的数据C 防火墙的主要功能是查杀病毒D 防火墙虽然能够提高网络的安全性,但不能保证网络绝对安全正确答案:C5.【第0708章】访问控制根据应用环境不同,可分为三种,它不包括( )。
A 数据库访问控制B 主机、操作系统访问控制C 网络访问控制D 应用程序访问控制正确答案:A6.【第0708章】下面不属于访问控制策略的是( )。
A 加口令B 设置访问权限C 加密D 角色认证正确答案:C7.【第0708章】以下文件格式中,不属于视频文件的是( )。
A AVIB MP3C MEPGD MOV正确答案:B8.【第0708章】允许用户在输入正确的保密信息时才能进入系统,采用的方法是( )。
A 口令B 命令C 序列号D 公文正确答案:A9.【第0708章】计算机中的“多媒体”是指( )。
A 文本、图形、声音、动画和视频及其组合的载体B 一些文本的载体C 一些文本与图形的载体D 一些声音和动画的载体正确答案:A10.【第0708章】实现信息安全最基本、最核心的技术是( )。
A 身份认证技术B 密码技术C 访问控制技术D 防病毒技术正确答案:B11.【第0708章】下列各项中,不属于常用的多媒体信息压缩标准的是( )。
《计算机网络基础》作业第1章一.填空题:1)在TCP/IP的应用层协议使用的是客户-服务器方式,在这里,客户是服务请求方,服务器是服务提供方。
2)美国的IBM公司在1974年宣布了它研制的网络体系结构 SNA开放系统互连基本参考模型(OSI)。
3)通信线路的带宽是指通信线路上允许通过的信号频带范围 (或通频带) ,单位是HZ。
4)在发送报文之前,先将较长的报文划分成为一个个更小的等长数据段,在每一个数据段前面,加上一些由必要的控制信息组成的首部(header)后,就构成了一个分组 .二.单选选择题:1)按照OSI参考模型分层,其第2层,第4层分别为(A)数据链路层,网络层(B)数据链路层, 传输层(C)网络层, 会话层(D)数据链路层,会话层2)下列哪个协议不是TCP/IP的应用层协议?A.TELNET B. PPP C. FTP D.SMTP3)TCP/IP协议有______层体系结构A. 2B. 3C. 4D. 54)世界上第一个投入使用的分组交换网是。
A.InternetB.ARPAnetC.EthernetD.NSFNET5)RFC是下列哪一个英文短语的缩写(A)Reference For Computers(B)Request For Comment(C)Registration Function Citation(D)Renewal Form Catalogue6)下列哪一个(或几个)关于交换的描述是错误的?(A)分组交换采用存储转发技术(B)电路交换采用存储转发技术(C)报文交换技术在计算机网络中使用较少(D)使用分组交换的网络中可能出现序号颠倒的分组三.问答和计算题:1.试在下列条件下比较电路交换和分组交换。
要传送的报文共x(bit)。
从源站到目的站共经过k段链路,每段链路的传播时延为d(s),数据率为b(b/s)。
在电路交换时电路的建立时间为s(s)。
在分组交换时分组长度为p(bit),且各结点的排队等待时间可忽略不计。
计算机网络( 本) 形考作业答案整理计算机网络(本)形考作业答案选择题形成性考核一:1、计算机网络的功能有B、资源共享2、网络资源子网负责C、信息处理3、通常按网络覆盖的地理范围分类,可分为局域网、( )与广域网三种。
B、城域网4、为了简化计算机网络的分析与设计,有利于网络的硬件与软件配置,按照计算机网络的系统功能,一个计算机网络中实现网络通信功能的设备及其软件的集合称为网络的A、通信子网5、为了简化计算机网络的分析与设计,有利于网络的硬件与软件配置,按照计算机网络的系统功能,把网络中实现资源共享功能的设备及其软件的集合称为C、资源子网6、计算机网络按网络的通信方式分类可以分为( )与广播式传输网络两种。
D、点对点传输网络7、就是面向连接的协议,用三次握手与滑动窗口机制来保证传输的可靠性与进行流量控制。
C、TCP8、协议规定网际层数据分组的格式。
B、IP9、一个功能完备的计算机网络需要指定一套复杂的协议集。
对于复杂的计算机网络协议来说,最好的组织方式就是D、层次结构模型10、在ISO/OS参考模型中,网络层的主要功能就是C、路由选择、拥塞控制与网络互连11、用于将MAC地址转换成IP地址的协议一般为D、RARP12、就是计算机网络层次模型中每一层中用于实现该层功能的活动元素,包括该层上实际存在的所有硬件与软件,如终端、电子邮件系统、应用程序、进程等。
C、实体13、网络协议由语法、( )与语序三大要素构成。
C、语义14、就是OSI 参考模型的最低层,它直接面向原始比特流的传输。
B、物理层15、负责建立相邻节点之间的数据链路,提供节点间可靠的数据传输。
B、数据链路层16、就是OSI 参考模型中最靠近用户的一层,负责为用户的应用程序提供网络服务。
D、应用层17、协议,它源于ARPANET网,现在已经成为In ternet互联网的通信协议。
A、TCP/IP18、TCP/IP 协议简化了层次设备,由下而上分别为网络接口层、网络层、( )、应用层。
作业1-1什么是计算机网络?1-2局域网、城域网与广域网的主要特征是什么?1-3计算机网络的功能主要有哪些?1-4由n个结点构成的星状拓扑结构的网络中,共有多少个直接连接?对于n个结点的环状网络呢?对于n个结点的全连接网络呢?答:采用星状、环状、全连接拓扑结构的网络如图所示。
星状、环状、全连接拓扑结构网络如上图,在n个结点的星状网络中,直接连接数为n-1;在n个结点的环状网络中,直接连接数为n;在n个结点的全连接网络中,直接连接数为n(n-1)/2。
1-5.假设一个系统具有n层协议,其中应用进程生成长度为m字节的数据。
在每层都加上长度为h字节的报头。
计算为传输报头所占用的网络带宽百分比。
解答:在同一结点内,当应用进程产生数据从最高层传至最低层时,所添加的报头的总长度为nh字节,数据部分仍为m字节。
因此,为传输报头所占用的网络带宽百分比为:nh/(nh+m)×100%1-6.什么是体系结构?在设计计算机网络体系结构时,引入了分层思想带来了哪些好处?在网络体系结构中,有两个比较重要的概念———协议和服务,试谈谈对它们的理解。
2-1 物理层主要解决哪些问题?物理层的主要特点是什么?2-2 对于带宽为4000Hz通信信道,如果采用16种不同的物理状态来表示数据,信道的信噪比S/N为30dB,按照奈奎斯特定理,信道的最大传输速率是多少?按照香农定理,信道的最大传输速率是多少?2-3.假设需要在相隔1000km的两地间传送3kb的数据。
有两种方式:通过地面电缆以4.8kb/s的数据传输速率传送或通过卫星通信以50kb/s的数据传输速率传送。
则从发送方开始发送数据直至接收方全部收到数据,哪种方式的传送时间较短?已知电磁波在电缆中的传播速率为光速的2/3,卫星通信的端到端单向传播延迟的典型值为270ms。
解答:从发送方开始发送数据直至接收方收到全部数据的时间T=数据发送时延+信号传播时延。
对于通过地面电缆的传送方式,电磁波在电缆中的传播速率=3×105×2/3=2×105(km/s),则T=3/4.8+1000/200000=0.63(s)。
《C++程序设计》第一套作业及其答案说明:本套作业涵盖第1章——第4章所学的内容。
本套作业共有38道单选题,1道多选题,共41个答案,满分为100分,错一个答案扣除2.5分。
1、在一个C++程序中,main函数的位置(C)。
(A)必须在程序的开头(B)必须在程序的后面(C)可以在程序的任何地方(D)必须在其它函数中间2、C++程序中的语句必须以(B)结束。
(A)冒号(B)分号(C)空格(D)花括号3、在下列八进制整型常量的表示中,(B)是正确的。
(A)0a0 (B)015 (C)080 (D)0x104、在下列十六进制整型常量的表示中,(C)是错误的。
(A)0x11 (B)0xaf (C)0xg (D)0x1f5、下列正确的字符常量为(D)。
(A)“a”(B)“\0”(C)a (D)‘\101’6、在下列运算符中,(D)优先级最低。
(A)!(B)&& (C)!= (D)?:7、设i=1, j=2,则表达式i+++j的值为(C)。
(A)1 (B)2 (C)3 (D)48、已知i=0, j=1, k=2,则逻辑表达式++i || --j && ++k的值为(B)。
(A)0 (B)1 (C)2 (D)39、设a=1, b=2, c=3, d=4,则条件表达式a<b ? a : c<d ? c : d的值为(A)。
(A)1 (B)2 (C)3 (D)410、逗号表达式(x = 4 * 5, x * 5), x + 25的值为(D)。
(A)25 (B)20 (C)100 (D)4511、已知int i, x, y; 在下列选项中错误的是(C)。
(A)if(x && y) i++; (B)if(x = y) i--;(C)if(xy) i--; (D)if(x + y) i++;-1 x<012、设有函数关系为 y = 0 x=0 ,下面选项中能正确表示上述关系为(C)。
作业4一、选择题1.下列关于动态联编的描述中,错误的是 ______________ 。
DA)动态联编是以虚函数为基础的B)动态联编是在运行时确定所调用的函数代码的C)动态联编调用函数操作是指向对象的指针或对象引用D)动态联编是在编译时确定操作函数的注:先期联编也称静态联编,迟后联编也称动态联编。
注释:动态联编一直要到程序运行时才能确定调用哪个函数。
虚函数是实现动态联编的必要条件之一。
没有虚函数一定不能实现动态联编,但有虚函数存在时,必须同时满足下列条件,才能够实现动态联编:•类之间满足子类型关系;•调用虚函数操作的是指向对象的指针或者对象引用:或者是由成员函数调用虚函数。
2关于虚函数的描述中,正确的是____________ 。
DA虚函数是一个静态成员函数B)虚函数是一个非成员函数C)虚函数既可以在函数说明时定义,也可以在函数实现时定义D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型注释:虚函数是非静态派生类的虚函数与基类中对应的虚函数必须满足下列条件,否则派生类中的虚函数将丢失其虚特性,在调用时进行静态联编:•派生类中的虚函数与基类中的虚函数具有相同的名称:•派生类中的虚函数与基类中的虚函数具有相同的参数个数和相同的对应参数类型:•派生类中的虚函数与基类中的虚函数的返回值或者相同,或者都返回指针或引用,并且派生类虚函数所返回的指针或引用的基类型是基类中的虚函数所返回的指针或引用的基类型的子类型。
3在下面四个选项中,__________ 是用来声明虚函数的。
AA)virtual B)public C)usi ng D)false4 对虚函数的调用_________ 。
DA)一定使用动态联编B)必须使用动态联编C)一定使用静态联编D)不一定使用动态联编注释:参见第1题的注释。
5实现运行时的多态性要使用_______________ 。
DA)重载函数B)构造函数C)析构函数D)虚函数注释:参见第1题的注释。
6要实现动态联编,必须通过________调用虚函数。
AA)对象指针B)成员名限定C)对象名D)派生类名注释:参见第1题的注释。
7在派生类中重新定义虚函数时,除了__________ 方面,其他方面都必须与基类中相应的虚函数保持一致。
DA)参数个数B)参数类型C)函数名称D)函数体注释:参见第2题的注释。
8下面关于构造函数和析构函数的描述,错误的是_。
DA)析构函数中调用虚函数采用静态联编B)对虚析构函数的调用可以采用动态联编C)当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D)构造函数可以声明为虚函数注释:构造函数不能声明为虚函数,但析构函数可以声明为虚函数。
当基类的析构函数声明为虚函数时,无论派生类是否使用virtual 关键字说明,派生类的析构函数疋是虚函数,对缺省析构函数亦然。
而且,如果满足动态联编的其他条件,对虚析构函数的调用将采用动态联编。
构造函数不能声明为虚函数,但在构造函数中可以调用虚函数。
在构造函数或析构函数中调用虚函数,将采用静态联编。
9关于纯虚函数和抽象类的描述中,错误的是_。
CA)纯虚函数是一种特殊的虚函数,它没有具体的实现B)抽象类是指具有纯虚函数的类C)一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出注释:带有纯虚函数的类称为抽象类。
抽象类中的纯虚函数的实现由派生类给出:但派生类仍可不给出纯虚函数的定义,继续作为抽象类存在。
10下列描述中,_______ 抽象类的特性。
DA)可以说明虚函数B)可以进行构造函数重载C)可以定义友元函数D)不能说明其对象注释:抽象类区别于其他类的最根本的特征是不能定义对象。
11 _______ 是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
CA)虚析构函数B)虚构造函数C)纯虚函数D)静态成员函数12如果一个类至少有一个纯虚函数,那么就称该类为_。
AA)抽象类B)虚基类C)派生类D)以上都不对13 以下—成员函数表示纯虚函数。
CA)virtual int vf(int); B)void vf(in t)=0 ;C)virtual void vf()=0 ; D)virtual void vf(i nt)()注释:纯虚函数的声明格式如下:virtual<函数返回类型><函数名>(<参数表>)=0 ;注意纯虚函数与虚函数体为空的区别。
纯虚函数根本就没有函数体,而空的虚函数的函数14下面的描述中,正确的是________ 。
AA)virtual 可以用来声明虚函数B ) 含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C ) 即使基类的构造函数没有参数,派生类也必须建立构造函数含有纯虚函数的类是抽象类,它不能用来定义对象。
静态数据成员的初始化必须在类体外进行。
如果所有的基类和子对象构造函数都不需要参数,派生类也不需要参数时,派 生类构造函数可以不定义。
15在下面程序中,A 、B 、C 、D 四句编译时不会出现错误的是__。
A#in clude<iostream.h> class Base { public:Base(){}Base(i nt c): coun t(c){ } virtual void prin t() con st=0; private: int count;};class Derived: public Base {public:Derived() :Base(0 ) { } Derived(i nt c): Base(c) { }void prin t()c onst { cout<<"Derived"<<e ndl; } };void main() {Derived d(10); Base *pb; pb=&d;//ABase & cb=d; Derived dd=*pb; Derived & cd=cb; //C Base bb=d;〃D注释:B 和C 处不符合赋值兼容规则。
D 处出错是因为Base 是含有纯虚函数的抽象类,不能建立抽象类的对象。
};注释:构造函数中不能调用纯虚函数,但可以调用虚函数。
17分析下面的程序,正确的输出结果是—B16在下面程序中,class A A ,B 、C D 四句编译时出现错误的是//A {public:A( ){ fun c();}〃B//C virtual void fun c()=0; //D#i nclude <iostream.h>#in elude <stri ng.h>class Base{public:virtual char *fun() con st=0;}char* Base::fun() const{ return 'Base”; }class Derived": virtual public Base{public:char* fun() const { return "Derived11"; }};class Derivedl2: virtual public Base{public:char* fun() const { return "Derivedl2"; }};class Derived2: public Derivedl1,public Derivedl2{public:char* fun() const{char *ptr;ptr=new char[strle n( Derivedl1::fu n( ))+strle n( Derivedl2::fu n( ))+1];strcpy(ptr,Derived11::fu n()),strcat(ptr,Derived12::fu n());return ptr;}};void mai n(){Base *pb;pb=new Derived11;cout<<pb->fu n() <<e ndl;pb=new Derivedl2;cout<<pb->fu n() <<e ndl;pb=new Derived2;cout<<pb->fu n() <<e ndl;}A) B)Derived" Derivedl2Derivedl1Derivedl2 C) D) Derivedll Derivedl2 DerivedllDerivedl2Derivedl1Derivedl2Derivedl1Derivedl2注释:参见第1题、第2题的注释。
派生类 Derivedll 、Derivedl2和Derived2中的 函数fun 与基类Base 中的虚函数fun 的函数名、参数表和返回类型都完全相同,因 此这三个类中的fun 函数也是虚函数,对 fun 函数的调用采用动态联编。
二、填空题1 动态联编中直到_①程序运行_时才能确定调用哪个函数;而静态联编则是在_②程序编译时进行的。
注释:动态联编与静态联编的概念。
2静态联编所支持的多态性称为_①编译时的_多态性,动态联编所支持的多态性则称为_ ②运行时的—多态性,动态多态性由—③虚函数 _________ 来支持。
注释:在C++中,多态性的实现和联编有关。
3对虚函数使用对象指针或引用调用,系统使用—①动态— 联编;使用对象调用时.系统使用—②静态—联编。
注释:参见选择填空第 1题、第5题的注释。
4动态联编是在—①虚函数—的支持下实现的,它通过_②指针或引用来调用该函数操作。
5在一个成员函数内调用一个虚函数时,对该虚函数的调用进行 —动态 _____ 联编。
6在析构函数中调用虚函数时,采用—静态 ______ 联编。
7 C++中 —①不支持—虚构造函数,但—②支持―虚析构函数。
注释:参见选择填空第 8题的注释。
多态是不同的对象对同一消息有不同的行为特征,虚函数作为运行过程中多态的基础, 主要是针对对象的,而构造函数的调用意味着要建立一个对象,这时必须确切地知道 这个对象的类型,并且,我们也不会为一个已存在的对象调用构造函数。
因此,虚构 造函数没有意义。
在C++中可以声明虚析构函数。
析构函数的功能是在该类对象消亡之前进行一些必 要的清理工作,如果一个类的析构函数是虚函数,那么,由它派生而来的所有子类的 析构函数也是虚函数。
析构函数设置为虚函数后,在使用指针调用时可以进行动态联 编,实现运行时的多态,从而保证使用基类的指针就能够调用适当的析构函数针对不 同的对象进行清理工作。