【计算机类职业资格】计算机网络基础知识、程序设计语言知识及答案解析.doc

上传人:花仙子 文档编号:1339730 上传时间:2019-10-17 格式:DOC 页数:15 大小:66KB
下载 相关 举报
【计算机类职业资格】计算机网络基础知识、程序设计语言知识及答案解析.doc_第1页
第1页 / 共15页
【计算机类职业资格】计算机网络基础知识、程序设计语言知识及答案解析.doc_第2页
第2页 / 共15页
【计算机类职业资格】计算机网络基础知识、程序设计语言知识及答案解析.doc_第3页
第3页 / 共15页
【计算机类职业资格】计算机网络基础知识、程序设计语言知识及答案解析.doc_第4页
第4页 / 共15页
【计算机类职业资格】计算机网络基础知识、程序设计语言知识及答案解析.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、计算机网络基础知识、程序设计语言知识及答案解析(总分:20.00,做题时间:90 分钟)1.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是“该防火墙能够_。 A使公司员工只能访问 Internet 上与其有业务联系的公司的 IP 地址 B仅允许 HTTP 协议通过 C使员工不能直接访问 FTP 服务端口号为 21 的 FTP 服务 D仅允许公司中具有某些特定 IP 地址的计算机访问外部网络(分数:1.00)A.B.C.D.2.在以下网络应用中要求带宽最高的应用是_。 A可视电话 B数字电视 C拨号上网 D收发邮件(分数:1.00)A.B.C.D

2、.运行 Web 浏览器的计算机与网页所在的计算机要建立 (3) 连接,采用 (4) 协议传输网页文件。(分数:2.00)(1).AUDP BTCP CIP DRIP(分数:1.00)A.B.C.D.(2).AHTTP BHTML CASP DRPC(分数:1.00)A.B.C.D.3.以下选项中可以用于 Internet 信息服务器远程管理的是_。 ATelnet BRAS CFTP DSMTP(分数:1.00)A.B.C.D.4.在面向对象的语言中,_。 A类的实例化指为类的实例分配存储空间。 B每个类都必须创建一个实例。 C每个类只能创建一个实例。 D类的实例化指初始化类。(分数:1.00

3、)A.B.C.D.5.软件开发人员可以用_软件编写和修改程序。 A预处理 B文本编辑 C链接 D编译(分数:1.00)A.B.C.D.6.高级程序设计语言中用于描述程序中的运算步骤、控制结构及数据传输的是_。 A语句 B语义 C语用 D语法(分数:1.00)A.B.C.D.7._属于系统软件,它直接执行高级语言源程序或与源程序等价的某种中间代码。 A编译程序 B预处理程序 C汇编程序 D解释程序(分数:1.00)A.B.C.D.8.编译高级语言源程序时,可发现源程序中的_错误。 A堆栈溢出 B变量未定义 C指针异常 D数组元素下标越界(分数:1.00)A.B.C.D.9.在 C+语言中,若类

4、C 中定义了一个方法 int f(int a,int b),那么方法_不能与该方法同时存在于类 C 中。 Aint f(int x,int y) Bint f(float a,int b) Cfloat f(int x,float y) Dint f(int x,float y)(分数:1.00)A.B.C.D.10.目前比较热门的软件开发工具,如 VB、PB 及 Delphi 等都是可视化的,这些工具是一种_程序语言。 A事件驱动 B逻辑式 C函数式 D命令式(分数:1.00)A.B.C.D.11.开发专家系统时通过描述事实和规则由模式匹配得出结论,这种情况下适用的开发语言是_。 A面向对象

5、语言 B函数式语言 C过程式语言 D逻辑式语言(分数:1.00)A.B.C.D.12.已知某高级语言源程序 A 经编译后得到机器 C 上的目标程序 B,则_。 A对 B 进行反编译,一股不能还原出源程序 A B对 B 进行反汇编,不能得到与源程序 A 等价的汇编程序代码 C对 B 进行反编泽,得到的是源程序 A 的变量声明和算法流程 D对 A 和 B 进行交叉编译,可以产生在机器 C 上运行的动态链接库(分数:1.00)A.B.C.D.某一确定性有限自动机(DFA)的状态转换图如图 6-2 所示,令 d=0|1|2|9,则以下字符串中,不能被该DFA 接受的是 (15) ,与该 DFA 等价的

6、正规式是 (16) (其中 表示空字符)。 * 3857 1.2E+5 -123. .576E10(分数:2.00)(1).A、 B、 C、 D、(分数:1.00)A.B.C.D.(2).A(-d|d)d*E(-d|d)d*|(-did)*.d*(|E(-d|d)d*) B(-d|d)dd*(.|)d*|(|E(-d|d)d*) C(-|d)dd*E(-|d)d*|(-d|d)dd*.d*(|E(-|d)d*) D(-d|d)dd*E(-d|d)d*(-d|d|)dd*.d*(|E(-dd*|dd*)(分数:1.00)A.B.C.D.13.对于以下编号为、的正规式,正确的说法是_。 (aa*|

7、ab)*b (a|b)*b (a|b)*|aa)*b A正规式、等价 B正规式、等价 C正规式、等价 D正规式、互不等价(分数:1.00)A.B.C.D.在 C+语言中,己知 3 个类 O、P 和 Q,类 O 中定义了一个私有方法 F1、一个公有方法 F2 和一个受保护的方法 F3:类 P 和类 Q 是类 O 的派生类,其继承方式如下所示: class P:protected 0); class Q:public 0; 关于方法 F1 的描述中正确的是 (18) ;关于方法 F2 韵描述中正确的是 (19) ;关于方法 F3 的描述中正确的是 (20) 。(分数:3.00)(1).A方法 F1

8、 无法被访问 B只有在类 O 内才能访问方法 F1 C只有在类 P 内才能访问方法 F1 D只有在类 Q 内才能访问方法 F1(分数:1.00)A.B.C.D.(2).A类 O、P 和 Q 的对象都可以访问方法 F2 B类 P 和 Q 的对象都可以访问方法 F2 C类 O 和 Q 的对象都可以访问方法 F2 D只有在类 P 内才能访问方法 F2(分数:1.00)A.B.C.D.(3).A类 O、P 和 Q 的对象都可以访问方法 F3 B类 O、P 和 Q 的对象都不可以访问方法 F3 C类 O 和 Q 的对象都可以访问方法 F3 D类 P 和 Q 的对象都可以访问方法 F3。(分数:1.00)

9、A.B.C.D.计算机网络基础知识、程序设计语言知识答案解析(总分:20.00,做题时间:90 分钟)1.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是“该防火墙能够_。 A使公司员工只能访问 Internet 上与其有业务联系的公司的 IP 地址 B仅允许 HTTP 协议通过 C使员工不能直接访问 FTP 服务端口号为 21 的 FTP 服务 D仅允许公司中具有某些特定 IP 地址的计算机访问外部网络(分数:1.00)A.B. C.D.解析:考查防火墙的功能,基于包过滤的防火墙利用包的属性来过滤。例如,来源 IP 地址、来源端口号、目的 IP

10、 地址、目的端口号及服务类型等。选项 B 是错误的,因为 HTTP 属于应用层协议。2.在以下网络应用中要求带宽最高的应用是_。 A可视电话 B数字电视 C拨号上网 D收发邮件(分数:1.00)A.B. C.D.解析:考查网络应用,很显然,数字电视既有音频,也有视频信息,并且传输的实时性及信号质量很高,因此要求的网络带宽最高。运行 Web 浏览器的计算机与网页所在的计算机要建立 (3) 连接,采用 (4) 协议传输网页文件。(分数:2.00)(1).AUDP BTCP CIP DRIP(分数:1.00)A.B. C.D.解析:(3)(4)考查 www 服务的协议,Web 服务的客户端和服务端需

11、要建立 TCP 连接,采用的是 HTTP 协议;另外,HTML(Hyper Text Mark-up Language)是超文本标记语言,用来描述网页:ASP(Active Server Page,动态服务器页面)是一种动态网页编程技术,RPC(RemoteProcedure call,远程过程调用)是一种通过网络从远程计算机上请求服务的协议。(2).AHTTP BHTML CASP DRPC(分数:1.00)A. B.C.D.解析:3.以下选项中可以用于 Internet 信息服务器远程管理的是_。 ATelnet BRAS CFTP DSMTP(分数:1.00)A. B.C.D.解析:考查

12、常见的网络协议,Telnet 是远程登录服务器的管理协议;RAS(Remote AccessSystem,远程访问服务)主要用来配置企业的远程用户对企业内部网络访问,包括拨号访问和 VPN 方式;FTP(File Transfer Protocol,文件传输协议)用于文件的上传下载服务;SMTP(SimpleMail Transfer Protocol,简单邮件传输协议)用来控制信件的发送及中转。4.在面向对象的语言中,_。 A类的实例化指为类的实例分配存储空间。 B每个类都必须创建一个实例。 C每个类只能创建一个实例。 D类的实例化指初始化类。(分数:1.00)A. B.C.D.解析:考查类

13、的概念,可以参考例题 16 的分析。在面向对象的编程中通常把用类创建对象的过程称为“实例化”,其格式如下: 类名对象名=new 类名(参数 1,参数 2参数 n) 可见类的实例化指为类的实例分配存储空间,因此选项 A 是正确的;D 是错误的。类可以被实例化,也可以不被实例化。类实例化时可以创建多个实例,因此选项 B 和 C 都是错误的。5.软件开发人员可以用_软件编写和修改程序。 A预处理 B文本编辑 C链接 D编译(分数:1.00)A.B. C.D.解析:考查编程的基本概念,文本编辑用来编写和修改程序,预处理、链接和编译是将源文件生成可执行的目标文件过程中的概念。6.高级程序设计语言中用于描

14、述程序中的运算步骤、控制结构及数据传输的是_。 A语句 B语义 C语用 D语法(分数:1.00)A. B.C.D.解析:考查程序设计语言的基本要素,程序设计语言的语法是其外观,给出语言的语法意味着给出语句、声明和其他语言结构的书写规则;语义则表示不同的语法结构的含义。在程序语言的手册中语言的描述均围绕语法结构展开,通常首先给出各种语句结构的语法,然后给出对应该结构的语义以描述内在含义。语用表示程序与使用者的关系。 在高级程序设计语言中,语句用于描述程序中的运算步骤、控制结构及数据传输。7._属于系统软件,它直接执行高级语言源程序或与源程序等价的某种中间代码。 A编译程序 B预处理程序 C汇编程

15、序 D解释程序(分数:1.00)A.B.C.D. 解析:考查高级语言的基本知识,用高级语言编写的源程序通常有两种方式在计算机上执行,一是解释方式,即计算机运行解释程序,逐句取出源程序中的语句并解释执行,输入数据后产生结果:二是编译方式,即运行编译程序,从源程序一次翻译产生计算机可直接执行的二进制程序(称为“目标程序”)。然后让计算机执行目标程序,输入数据后产生结果。 解释方式的主要优点是计算机与人的交互性好,调试程序时能一边执行,一边直接改错,从而较快得到一个正确的程序;缺点是逐句解释执行,运行速度慢。编译方式的主要优点是计算机运行目标程序快;缺点是修改源程序后必须重新编泽以产生新的目标程序。

16、 现在也可将上述两种方式结合,即编译源程序产生不能直接执行的中间代码,然后让解释程序解释执行中间代码。这样做的好处首先是比直接解释执行快,而且中间代码独立于计算机。只要有相应的解释程序,即可在任何计算机上运行。8.编译高级语言源程序时,可发现源程序中的_错误。 A堆栈溢出 B变量未定义 C指针异常 D数组元素下标越界(分数:1.00)A.B. C.D.解析:考查编译过程基本知识,高级语言源程序中的错误分为语义和语法错误,其中语义错误又可分为静态和动态语义错误;语法错误指语言结构上的错误。静态语义错误指编译时就能发现的程序含义上的错误,动态语义错误只有在程序运行时才能表现出来。堆栈溢出、指针异常

17、和数组元素下标越界都是程序运行中才能出现的问题,而遵循先声明后引用原则的程序语言必须先定义变量,然后才能使用;否则编译器会在语法分析阶段指出变量未定义错误。9.在 C+语言中,若类 C 中定义了一个方法 int f(int a,int b),那么方法_不能与该方法同时存在于类 C 中。 Aint f(int x,int y) Bint f(float a,int b) Cfloat f(int x,float y) Dint f(int x,float y)(分数:1.00)A. B.C.D.解析:考查 C+语言中函数的多态性,不能定义形式参数的个数、类型,以及返回值的类型完全一样的函数。本题

18、选项 A 中 int f(int x,int y)和 int f(int a,int b)是完全等价的两个函数。10.目前比较热门的软件开发工具,如 VB、PB 及 Delphi 等都是可视化的,这些工具是一种_程序语言。 A事件驱动 B逻辑式 C函数式 D命令式(分数:1.00)A. B.C.D.解析:考查常见的编程语言,VB、PB 和 Delphi 都是基于事件驱动的程序设计语言。11.开发专家系统时通过描述事实和规则由模式匹配得出结论,这种情况下适用的开发语言是_。 A面向对象语言 B函数式语言 C过程式语言 D逻辑式语言(分数:1.00)A.B.C.D. 解析:考查程序语言基本知识函数

19、式程序设计的数据结构本质上是表。函数又可以作为值出现在表中,因此函数式程序的控制结构取决于函数,以及函数的定义和调用。函数式语言主要用于符号数据处理,如微分和积分演算、数理逻辑、游戏推演,以及人工智能等领域。 用逻辑式程序设计语言编写程序不需要描述具体的解题过程,只需要给出一些必要的事实和规则,这些规则是解决问题的方法的规范说明。根据这些事实和规则,计算机利用谓词逻辑,通过演绎推理得到求解问题的执行序列。这种语言主要用在人工智能领域,也应用在自然语言处理、数据库查询和算法描述等方面,尤其适合作为专家系统的开发工具。12.已知某高级语言源程序 A 经编译后得到机器 C 上的目标程序 B,则_。

20、A对 B 进行反编译,一股不能还原出源程序 A B对 B 进行反汇编,不能得到与源程序 A 等价的汇编程序代码 C对 B 进行反编泽,得到的是源程序 A 的变量声明和算法流程 D对 A 和 B 进行交叉编译,可以产生在机器 C 上运行的动态链接库(分数:1.00)A. B.C.D.解析:本题考查反编译、交叉编译等相关概念。 计算机软件反向工程(Reverse Engineering)也称为“计算机软件还原工程”,指通过对他人软件的目标程序(可执行程序)进行“逆向分析和研究”推导出该软件所使用的思路、原理、结构、算法、处理过程及运行方法等设计要素,作为开发软件时的参考,或者直接用于自己的软件产品

21、中。 高级语言源程序经过编译变成可执行文件,反编译是其逆过程。但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。反编译是一个复杂的过程,所以越是高级语言越难于反编译。 反汇编是把目标代码转为汇编代码的过程,通常利用如 C 及 Pascal 等高级语言编程,然后经过编译程序生成可以被计算机系统直接执行的文件。反汇编将这些执行文件反编译还原成汇编语言或其他高级语言,但通常反编译后的程序与源程序会存在许多不同。虽然执行效果相同,但程序代码会发生很大的变化,非编程高手很难读懂。 交叉编译简单地说是在一个平台上生成另一个平台上的可执行代码,这里所谓的平台实际上包含体系结构(Architec

22、ture)和操作系统(Operating System)两个概念。同一个体系结构可以运行不同的操作系统,同一个操作系统也可以在不同的体系结构上运行。 需要交叉编译的原因一是在项目的起始阶段,目标平台尚未建立,因此需要交叉编译以生成需要的bootloader(启动引导代码)及操作系统核心;二是当目标平台能启动之后,由于其资源的限制,所以当编译大型程序时依然可能需要用到交叉编译。 本题选项 A 是正确的,反编译只能转换成汇编程序,不能把可执行文件变成高级语言源代码。相应地,B和 C 是错误的。交叉编译在一个平台上生成另一个平台上的可执行代码,不是在源程序和目标程序之间进行,因此 D 是错误的。某一

23、确定性有限自动机(DFA)的状态转换图如图 6-2 所示,令 d=0|1|2|9,则以下字符串中,不能被该DFA 接受的是 (15) ,与该 DFA 等价的正规式是 (16) (其中 表示空字符)。 * 3857 1.2E+5 -123. .576E10(分数:2.00)(1).A、 B、 C、 D、(分数:1.00)A.B. C.D.解析:(2).A(-d|d)d*E(-d|d)d*|(-did)*.d*(|E(-d|d)d*) B(-d|d)dd*(.|)d*|(|E(-d|d)d*) C(-|d)dd*E(-|d)d*|(-d|d)dd*.d*(|E(-|d)d*) D(-d|d)dd*

24、E(-d|d)d*(-d|d|)dd*.d*(|E(-dd*|dd*)(分数:1.00)A. B.C.D.解析:本题考查有限自动机。 有限状态自动机识别字符串的过程是:初始时,处于起始状态(题图中节点 0 表示初始状态);依次读取一个字符,并进行相应的状态转移,直到输入串结束或找不到相应的状态转移为止。字符串被 DFA 接受是指从初态开始到终态(图中双圈节点表示终态),所输入的字符串能够按顺序执行下去。 根据本题给出的状态机,我们来分别看一下中每个字符串的识别过程: 3857:状态转换过程为*,到最后一个字符“7”识别完以后,状态机仍处于中间状态 1,而非终态,因此不会接受此字符串。 1.2E

25、+5:状态转换过程为*,识别完字符“E”到状态 2 以后,后面一个字符“+”已无路径可走,因此无法接受此字符串。 -123.:状态转换过程为*,字符串识别完成并且到达终态,因此可以接受。 .576E10:该字符串的第一个字符“.”都无法中初态 0 找到下一步的路径,因此不会被接受。 分析题中给出的有穷状态机,可知该自动机识别以下形式的数值:带小数部分的十进制表示形式和以尾数、指数表示的数值形式,其中由初态 0 到终态 5 所识别的是带小数点的以十进制数值表示形式的字符串,小数点后可以没有数值,也可以有若干数字,而小数点之前的整数部分可以不带符号,也可以带负号,其正规式为(-d|d)d*.d*。

26、当数值的表示含有指数部分时(由 初态 0 到终态 6),指数部分是不带符号或带负号的整数形式,该部分的正规式为 E(-d|d)d*。13.对于以下编号为、的正规式,正确的说法是_。 (aa*|ab)*b (a|b)*b (a|b)*|aa)*b A正规式、等价 B正规式、等价 C正规式、等价 D正规式、互不等价(分数:1.00)A.B.C. D.解析:本题考查正规式。 根据正规式的含义,两个正规式 r 和 s 等价说明 r 和 s 代表的字符串集合相同,因此可以用证明集合相等的方法判断,也可以构造出每个正规式对应的自动机进行判断。但这两个方法实施起来都很繁琐,在实际解题的过程中可以根据正规式的

27、含义及其代数性质进行判断。 本题中给出的正规式的共同之处是以字符串 b 结尾,所以只需考虑(aa*|ab)*、(a|b)*和(a|b)*|aa)*之间的等价关系即可。正规式(aa*|ab)*表示的是包含空串 以及 a 开头的且每个 b 之后必然出现 a 的字符串集合;而(a|b)*表示的是包含空串 在内的所有 a、b 构成的集合,并不限制 b 的出现方式;(a|b)*|aa)*表示的字符串也不具有 a 开头的特点,因此三者之间的等价关系可排除。至于(a|b)*和(a|b)*|aa)*,很明显后者中的 aa 是画蛇添足的部分,因为(a|b)*已经包含了含有 aa 字串的所有 a、b 字符串。因此

28、,(a|b)*b 和(a|b)*|aa)*b 是等价的。 本题也可以从另一个角度来解答,将这些正规式进行化简后再进行比较,(aa*|ab)*b 产生的字符串为a*b 或 ab*b;(a|b)*b 产生的字符串为 a*b 或 b*b;(a|b)*|aa)*b 产生的字符串为 a*b 或 b*b。在 C+语言中,己知 3 个类 O、P 和 Q,类 O 中定义了一个私有方法 F1、一个公有方法 F2 和一个受保护的方法 F3:类 P 和类 Q 是类 O 的派生类,其继承方式如下所示: class P:protected 0); class Q:public 0; 关于方法 F1 的描述中正确的是 (

29、18) ;关于方法 F2 韵描述中正确的是 (19) ;关于方法 F3 的描述中正确的是 (20) 。(分数:3.00)(1).A方法 F1 无法被访问 B只有在类 O 内才能访问方法 F1 C只有在类 P 内才能访问方法 F1 D只有在类 Q 内才能访问方法 F1(分数:1.00)A.B. C.D.解析:(2).A类 O、P 和 Q 的对象都可以访问方法 F2 B类 P 和 Q 的对象都可以访问方法 F2 C类 O 和 Q 的对象都可以访问方法 F2 D只有在类 P 内才能访问方法 F2(分数:1.00)A.B.C. D.解析:(3).A类 O、P 和 Q 的对象都可以访问方法 F3 B类

30、O、P 和 Q 的对象都不可以访问方法 F3 C类 O 和 Q 的对象都可以访问方法 F3 D类 P 和 Q 的对象都可以访问方法 F3。(分数:1.00)A.B. C.D.解析:本题考查 C+语言中类(Class)的相关概念。 类是为某种类型的对象定义变量和方法的原型,它表示对现实生活中一类具有共同特征事物的抽象,是面向对象编程的基础。 类是对某个对象的定义,包括对象动作的名称、方法、属性和事件。当引用类的代码运行时,类的一个新的实例,即对象在内存中创建。虽然只有一个类,但可通过它在内存中创建多个相同类型的对象。类创建的所有对象都有相同的成员,即属性、方法和事件。但是每个对象都如同一个独立的

31、实体一样动作,一个对象的属性可以设置成与同类型的其他对象不同的值。 类定义的一般形式如下: class Name public: 类的公有接口 private: 私有的成员函数 私有的数据成员定义 ; 类的定义由类头和类体两个部分组成,类头由关键字 Class 开头,然后是类名,其命名规则与一般标识符的命名规则一致;类体包括所有的细节,并放在一对花括号中。类的定义也是一个语句,所以要以分号结尾;否则会产生编译错误。 类体定义类的成员,它支持如下两种类型的成员。 (1) 数据成员:指定该类对象的内部表示。 (2) 成员函数:指定该类的操作。 类成员有如下 3 种不同的访问权限。 (1) 公有(P

32、ublic)成员:可以在类外和子类中访问。 (2) 私有(Private)成员:只能被该类的成员函数访问,在子类中和外部不能被访问。 (3) 保护(Protected)成员:只能被该类的成员函数或派生类的成员函数访问,在外部不能被访问。 类成员的访问权限如表 6-2 所示。 表6-2 类成员的访问权限成员类的成员函数(内部)类的对象(外部)Public可以访问可以访问P可 不rotected以访问可以访问Private可以访问不可以访问数据成员通常是私有的;成员函数通常有一部分是公有的,一部分是私有的。公有函数可以在类外被访问,也称为“类的接口”。可以为各个数据成员和成员函数指定合适的访问权限

33、。 派生类有如下 3 种继承方式,即公有继承(Public)、私有继承(Private)和保护继承(Protected)。 (1) 公有继承 基类成员对派生类的可见性:对派生类来说,基类的公有成员和保护成员可见:基类的公有成员和保护成员作为派生类的成员时保持原有的状态:基类的私有成员不可见:基类的私有成员仍然是私有的,派生类不可访问基类中的私有成员。 基类成员对派生类对象的可见性:对派生类对象来说,基类的公有成员是可见的,其他成员不可见。 所以在公有继承时,派生类的对象可以访问基类中的公有成员;派生类的成员函数可以访问基类中的公有成员和保护成员。 (2) 私有继承 基类成员对派生类的可见性:对

34、派生类来说,基类的公有成员和保护成员可见:基类的公有成员和保护成员均作为派生类的私有成员,并且不能被这个派生类的子类所访问:基类的私有成员不可见,派生类不可访问基类中的私有成员。 基类成员对派生类对象的可见性:对派生类对象来说,基类的所有成员均不可见。 所以在私有继承时,基类的成员只能由直接派生类访问,而无法向下继承。 (3) 保护继承 这种继承方式与私有继承方式的情况相同,区别仅在于对派生类的成员而言。 基类成员对派生类的可见性:对派生类来说,基类的公有成员和保护成员可见:基类的公有成员和保护成员均作为派生类的保护成员,并且不能被这个派生类的子类所访问;基类的私有成员不可见:派生类不可访问基

35、类中的私有成员。 基类成员对派生类对象的可见性:对派生类对象来说,基类的所有成员均不可见。 所以在保护继承时,基类的成员也只能由直接派生类访问,而无法向下继承。 基本成员在派生类的各种继承方式下,基类成员对派生类和派生类对象的可见性关系如表 6-3 所示。 表6-3 派生类各种继承方式下的可见性关系基本派生对派对派成员类的继承方式生类生类的对象Public可见,相当于Public成员可见Protected可见,相当于Protected成员不可见PublicPrivate可见,相当于Priv不可见ate成员Public可见,相当于Protected成员不可见Protected可见,相当于Prot

36、ected成员不可见ProtectedPrivate可见,相当于Pr不可见ivate成员Public不可见不可见Protected不可见不可见PrivatePrivate不可见不可见由此可见,子类无沦采用何种继承方式都不能访问基类中 Private 属性的成员。采用 Public 继承,基类中的 Public 及 Protected 属性的成员访问特性在子类中仍然保持一致;采用 Protected 继承,基类中的Public 及 Protected 属性成员访问特性在子类中变为 Protected;采用 Private 继承,基类中的 Public及 Protected 属性成员访问特性在子类

37、中变为 Private.。 本题中 F1 是私有方法,仅在本类中才可被访问,其他所有类没有权限访问它。 F2 是类 O 的共有方法,所以类 O 的对象肯定可以访问 F2;由于类 P 采用 Protected 方式从类 O 继承,因此 F2 方法在类 P 中将变成 Protected 保护级别,类 P 的对象无法访问 F2;类 Q 采用 Public 方式从类 O继承,因此 F2 方法在类 Q 中仍然保持 Public 保护级别,类 Q 的对象可以访问 F2 方法。 F3 是类 O 的保护方法,所以类 O 的对象肯定无法访问 F3;类 P 采用 Protected 方式从类 O 继承,因此 F3方法在类 P 中仍然是 Protected 保护级别,类 P 的对象无法访问 F3;类 Q 采用 Public 方式从类 O 继承,因此 F3 方法在类 Q 中仍然保持 Protected 保护级别,类 Q 的对象也无法访问 F3。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1