- 1、本文档共84页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
考研计算机复试面试題總結
概念問題
C++/数据构造
1、简述你對“面向對象”和“面向過程”编程思想的认识与思索用就可以了。
面向過程
就是分析出处理問題所需要的环节,然後用函数把這些环节一步一步实現,使用的時候一种一种依次调
面向對象是把构成問題事务分解成各個對象,建立對象的目的不是為了完毕一种环节,而是為了描叙某個事物在整個处理問題的环节中的行為。
例如五子棋,面向過程的设计思绪就是首先分析問題的环节:1、開始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回环节2,9、输出最终成果。把上面每個环节用分别的函数来实現,問題就处理了。
而面向對象的设计则是從此外的思绪来处理問題。整個五子棋可以分為1、黑白双方,這两方的行為是一模同样的,2、棋盘系统,负责绘制画面,3、规则系统,负责鉴定诸如犯规、输赢等。第一类對象(玩家對象)负责接受顾客输入,并告知第二类對象(棋盘對象)棋子布局的变化,棋盘對象接受到了棋子的i变化就要负责在屏幕上面显示出這种变化,同步运用第三类對象(规则系统)来對棋局進行鉴定。
可以明显地看出,面向對象是以功能来划分問題,而不是环节。同样是绘制棋局,這样的行為在面向過程的设计中分散在了總多环节中,很也許出現不一样的绘制版本,由于一般设计人员會考虑到实际状况進行多种各样的简化。而面向對象的设计中,绘图只也許在棋盘對象中出現,從而保证了绘图的统一。
功能上的统一保证了面向對象设计的可扩展性。例如我要加入悔棋的功能,假如要改動面向過程的设计,那么從输入到判断到显示這一连串的环节都要改動,甚至环节之间的循序都要進行大规模调整。假如是面向對象的话,只用改動棋盘對象就行了,棋盘系统保留了黑白双方的棋谱,简朴回溯就可以了,而显示和规则判断则不用顾及,同步整個對對象功能的调用次序都没有变化,改動只是局部的。
再例如我要把這個五子棋游戏改為围棋游戏,假如你是面向過程设计,那么五子棋的规则就分布在了你的程序的每一种角落,要改動還不如重写。可是假如你當時就是面向對象的设计,那么你只用改動规则對象就可以了,五子棋和围棋的区别不就是规则吗?(當然棋盘大小仿佛也不一样样,可是你會覺得這是一种难題吗?直接在棋盘對象中進行一番小改動就可以了。)而下棋的大体环节從面向對象的角度来看没有任何变化。
當然,要到达改動只是局部的需要设计的人有足够的經验,使用對象不能保证你的程序就是面向對象,初學者或者很蹩脚的程序员很也許以面向對象之虚而行面向過程之实,這样设计出来的所谓面向對象的程序很难有良好的可移植性和可扩展性。
2、ADT是什么?简述你對“数据抽象”和“信息隐藏”的认识
抽象数据类型(AbstractDataType简称ADT)是指一种数學模型以及定义在此数學模型上的一组操作。抽象数据类型需要通過固有数据类型(高级编程語言中已实現的数据类型)来实現。抽象数据类型是与表达無关的数据类型,是一种数据模型及定义在该模型上的一组运算。對一种抽象数据类型進行定义時,必须給出它的名字及各运算的运算符名,即函数名,并且规定這些函数的参数性质。一旦定义了一种抽象数据类型及详细实現,程序设计中就可以像使用基本数据类型那样,拾分以便地使用抽象数据类型。
抽象数据类型通過类(class)实現
?程序设计語言對抽象数据类型的支持是指容許顾客自定义具有如下特性的数据类型:
1.模块封装:Therepresentationof,andoperationson,objectsofthetypearedefinedinasingle
syntacticunit
2.信息隐蔽:Therepresentationofobjectsofthetypeishiddenfromtheprogramunitsthatusethese
objects,sotheonlyoperationspossiblearethoseprovidedinthetypesdefinition
3、const和static有什么作用?
const是一种C和C++語言的关键字,它限定一种变量不容許被变化,即只讀。使用const在一定程度上可以提高程序的安全性和可靠性,也便于实現對此進行优化(如把只讀對象放入ROM中)。const作為类型限定符,是类型的一部分。
4、友元关系的利与弊
假如将一种函数或一种类申明為另一种类的友元,那么它就可以直接存取這個类對象中的多种数据,而不必在意這些数据的封装级别,即無论是private的,protected的,還是public的,有钱同使,有难同當。
5、C++多态的实現
1.用virtual关键字申明的函数叫做虚函数,虚函数
文档评论(0)