面向对象程序设计总复习资料(2008-秋)

合集下载

面向对象复习资料

面向对象复习资料

复习资料计算机科学与技术《面向对象程序设计》(高本)一、填空(每空1分,共22分)1、属性行为2、对象3、关联聚合泛化4、抽象性封装性继承性多态性5、主类6、application applet7、108、”wang”9、public private 10、间接继承 11、true false 12、105 13、0二、名词解释(每题5分,共30分)1、抽象:所谓抽象是指从许多事物中舍弃个别的、非本质的属性,抽取出共同的、本质的属性的过程,它是形成概念的必要手段。

2、对象:对象是用来描述现实世界中客体的部件,是面向对象软件系统在运行时刻的基本单位。

在程序设计中,对象是现实世界中的客体在应用程序中的具体体现,其中封装了客体的属性信息和行为方式,并用数据表示属性,用方法表示行为方式。

3、消息:消息是一个对象要求另一个对象实施某项操作的请求。

在一条消息中,需要包含消息的接收者和要求接收者执行哪项操作的请求,但并没有说明应该怎样做。

具体的操作过程由接收者自行决定,这样可以很好的保证系统的模块性。

4、继承:所谓继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于从而实现父类代码的重用。

5、多态:所谓多态是指不同的类对象收到同一个消息可以产生完全不同的响应效果的现象。

6、软件工程:“软件工程”是应用计算机科学、数学与管理科学等原理,借鉴传统工程的原则和方法,研究如何有计划、高效率、低成本地开发能够在计算机上正确运行的软件,并试图从理论上和技术上提出一整套适合于软件开发的工程方法学。

四、简答(每题15分,共30分)1、答:软件的生命周期是指从某个软件的需求被提出并开始着手开发到这个软件被最终废弃的整个过程。

通常在这个过程中,应该包括制定计划、需求分析、系统设计、程序编码、系统测试、系统运行及维护阶段。

下面概要地介绍这几个阶段的主要任务。

(1)制定计划在正式开始开发软件项目之前,充分地研究、分析待开发项目的最终目标,整理出其功能、性能、可靠性及接口等方面的需求,计算出所需人力、物力的资源开销,推测日后可能获取的经济效益,提供支持该项目的技术能力以及给出开发该项目的工作计划是这个阶段需要完成的主要任务。

面向对象程序设计复习要点

面向对象程序设计复习要点

《面向对象程序设计》总复习第一部分各章复习要点第1章C++一、基本知识1.面向对象程序设计的基本概念●类、对象、属性、方法2.面向对象程序设计的特点●封装、继承、多态二、基本技能1.VC++6.0编程环境的使用●编辑、编译、运行、查错●调试由多个文件组成的程序2.cin和cout的使用第2章数据类型与表达式1.数据的存储●基本类型:整型、实型、字符型、布尔型●构造类型:结构、联合、枚举2.数据的表示●常量、变量3.符号的表示●运算符、表达式第3章C++控制结构一、基本知识1.语句概述●控制语句●函数语句●表达式语句●空语句2.语句要点●格式、执行过程、注意事项二、基本技能1.递推法程序设计●前项推后项●外加循环控制2.穷举法程序设计●用循环列出所有情况●找出满足条件的情况第4章函数一、基本知识1.函数的概念●函数的声明●函数的定义●函数的调用2.函数●数据传递:主函数→子函数,子函数→主函数3.变量的存储类型●动态●静态●寄存器4.变量的作用域●全局变量●局部变量二、基本技能1.嵌套函数设计●并列定义嵌套调用2.递归函数设计●由未知推向已知的递推公式●格式:If 已知else 递推3.重载函数设计●相同:函数名●不同:函数类型、参数(个数或类型)4.函数技巧●内联函数、外联函数●带默认参数值的函数●引用第5章数组、指针与字符串一、基本知识1.数组的概念●一维数组●二维数组●字符数组2.指针●如何获取各种数据的指针●如何用指针表示各种数据●用指针处理数据的优势二、基本技能1.排序●选择法排序●冒泡法排序2.字符串处理●输入●处理:比较、赋值、连接●输出3.指针●指针的定义●指针的获取●用指针表示数据第6章类和对象一、基本知识1.类2.对象3.构造函数4.析构函数5.拷贝构造函数6.友元7.组合类二、基本技能1.构造类●数据●函数(构造函数、析构函数、拷贝构造函数)2.友元函数●定义与使用3.静态成员●定义与使用4.对象数组5.对象指针第7章继承与派生一、基本知识1.继承2.继承方式3.继承的分类4.继承的二义性5.虚基类6.虚函数与纯虚函数7.抽象类二、基本技能1.构造派生类●构造函数、析构函数、拷贝构造函数2.继承要点●子类的对象如何使用基类的成员●子类的成员如何使用基类的成员第8章多态性一、基本知识1.多态性2.运算符重载二、基本技能1.单目运算符重载●前置运算符重载●后置运算符重载2.双目运算符重载3.运算符重载为友元函数●解决重载的二义性第9章模板一、基本知识1.函数模板2.类模板二、基本技能1.函数模板●定义和使用2.类模板●定义和使用第10章输入输出流一、基本知识1.控制格式2.文件二、基本技能文件编程要点●定义文件对象●打开文件●读写数据●关闭文件第二部分复习要点(一)基本概念1.类(构造函数、析构函数、拷贝构造函数)和对象2.面向对象程序的特点3.重载函数4.友元函数5.虚基类6.虚函数、纯虚函数7.抽象类8.模板函数、模板类9.文件类(二)基本技能1.构造类2.构造派生类(单继承、多继承)3.构造抽象类4.定义重载函数5.定义友元函数6.定义运算符的重载7.定义模板函数8.文件对象的使用第三部分主要问题(一)基本概念1.面向对象程序设计的特点是什么?2.类有哪些成分组成?3.构造函数、析构函数和拷贝构造函数的作用?4.重载函数、友元函数的作用?5.类的继承方式有哪些?对子类的对象有何影响?6.虚基类的作用?7.虚函数、纯虚函数的作用?8.运算符重载的作用?9.模板函数、模板类的作用?10.抽象类的作用?(二)基本技能1.面向对象程序设计的技巧有哪些?2.面向对象程序实现软件复用的方法有哪些?3.面向对象程序设计的多态性体现在哪些方面?。

面向对象程序设计复习提纲

面向对象程序设计复习提纲

面向对象程序设计复习1. 函数重载是指两个或两个以上的函数取相同的函数名,但形参的个数或类型不同。

2.若有指针p指向变量x,则*p与x的表示是等价的。

3.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为a。

4.执行int *p= new int[10]操作,使p指向的元素可表示为p[0](或*p )5.除了能通过构造函数的函数体内赋值语句对数据成员实现初始化外,C++还提供一种初始化数据成员的方法参数初始化表。

6.假定p所指向对象为25,p+1指向对象为42,则执行*p++运算后,p所指向对象值为42.7.在调用成员函数时,this指针被初始化成被调函数所在类的对象的地址。

8.为了使指针值始终保持为初始值,可以将指针变量声明为const型(常指针)9.静态数据成员可以初始化,但只能在类体外进行初始化。

10.私有继承中,基类中的保护成员在私有派生类中的访问属性是私有11.预处理命令在程序中都是以#符号开头的。

12.当一个函数调用表达式只能与一个模板函数相符合时,将首先根据模板函数生成一个实例函数,然后再调用它执行。

13.假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为~AB(){}14.派生类的成员函数不能直接访问基类的私有成员。

15.若需要定义基类中的一个成员函数为虚函数,则必须在函数头的开始使用virtual保留字。

16.为了实现运算符重载,必须定义一个叫做operator的运算符函数。

17.Time为类名,有定义void Time::fun()const,fun称为常成员函数18.对象的指针就是对象空间的地址19.保护继承中,基类中的公用成员在保护派生类中的访问属性是保护20.假定p所指向对象为2,p+1指向对象为3,则执行*++p运算后,p所指向对象值为3 完成程序题31.下列函数的功能是实现两个数的最小公倍数,请填空:#include<iostream>_ ①_;using namespace stdint lcd(int x,int y){②;}return x*y/hcf(x,y)32. 下面函数的功能是:统计子字符串substr在字符串str中出现的次数。

面向对象程序设计考试复习资料

面向对象程序设计考试复习资料

面向对象程序设计1. 代码public class Test {public int aMethod() {static int i = 0;i++;return i;}public static void main (String args[]) {Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);}}输出结果为编译失败,static用来修饰全局变量,不能修饰局部变量2. 下面的程序中,temp的最终值是1long temp=(int)3.9;temp%=2;3.在J2EE中属于Web层的组件有:Servlet4. 派生类中的成员不能直接访问基类中的private成员。

5.以public修饰的类如:public class Car{…}则Car可被其它程序包中的类使用6.paint( )方法使用 Graphics 类型的参数7. 下面数据插入语言(DIL)不属于SQL语句的子类8. 实现运行时的多态性要使用虚函数。

9. 创建对象时构造函数被调用10. 如下代码:class Base {Base() { System.out.print(“Base”); }}public class Alpha extends Base {public static void main( String[] args ) {new Alpha();-----调用父类无参的构造方法new Base();}}结果是BaseBase。

11.如果希望控件在界面上按表格行分列排列,应使用GridLayout布局管理器12. 声明抽象方法不可写出大括号叙述正确13. 线程交互中不提倡使用stop()方法14.当检索一个压缩文件时,首先要建立压缩文件输入流对象,该对象以 FileInputStream 对象为参数15.jsp指令中isELIgnored="boolean"的意思是决定是否支持EL表示。

面向对象程序设计(Java)总复习

面向对象程序设计(Java)总复习
应用场景
需要频繁地创建和销毁同一对象实例的场合,如日志 记录器、缓存对象等。
工厂模式
定义
提供一个创建对象的最佳方 式。
实现方式
简单工厂、工厂方法、抽象 工厂。
应用场景
当需要根据不同的参数条件 创建不同的对象时,如数据 库连接池、对象序列化等。
观察者模式
定义
定义了对象之间的依赖关系,使得当一个对象状态发生改变时,其 相关依赖对象能够得到通知并自动更新。
for语句
用于循环遍历数组或集合等数据结 构。
04
函数与方法
函数
函数是执行特定任务的代码块,可以接受输入参数并返回结果。在 Java中,函数也被称为方法。
方法重载
在同一类中可以定义多个同名方法,只要它们的参数列表不同即可。
方法覆盖
子类可以定义与父类同名的方法,只要它们的参数列表和返回类型相 同即可。
集合框架
集合框架概述
List接口及其实现
Java集合框架提供了用于存储和操作对象 集合的接口和类。它包括List、Set、 Queue和Map等接口以及实现这些接口的 类。
Set接口及其实现
List接口表示有序集合,可以包含重复元素 。Java提供了ArrayList、LinkedList等类来 实现List接口。
String类与正则表达式
字符串的比较
字符串的替换
字符串的截取
01
03 02
String类与正则表达式
01
正则表达式
02
正则表达式的概念
03
正则表达式的使用方法
String类与正则表达式
正则表达式的匹配规则
正则表达式的特殊字符
IO流与文件操作

面向对象的程序设计复习资料

面向对象的程序设计复习资料

⾯向对象的程序设计复习资料⾯向对象复习资料·········⼀、名词解释1、软件⼯程——建⽴在系统化、规范化、数量化等⼯程原则和⽅法上的,关于软件开发各阶段的定义、任务和作⽤的⼯程学科。

包括软件开发技术、软件项⽬管理两⽅⾯内容。

2、模型——对现实的简化,提供系统的蓝图,包含架构[总体]设计和组件[详细]设计;包含重要的因素忽略不相⼲的细节;⼀个系统可以从不同视⾓使⽤不同模型进⾏描述;模型可以是架构的[侧重于组织]、也可以关注⾏为[系统的动作]3、对象——现实世界中具有静态特征和动态特征的某个具体的实际事物。

4、封装——把属性和操作封在⼀个对象⾥,不允许外界直接存取和使⽤。

包含属性与⾏为的结合和信息屏蔽两层含义。

5、消息——向对象发出的[服务]请求,包括服务的对象标识、服务标识、输⼊信息和回答信息等。

定义对象之间单路通信,是从发送⽅到接收⽅的控制流,激发某操作、唤醒信号或导致对象的创建或撤消。

⽤箭头表⽰,符号见表6、继承——派⽣类或⼦类⾃动拥有基类或⽗类的全部属性和操作的类创建⽅法7、多态——同⼀操作作⽤于不同对象,有不同解释或不同的执⾏结果。

两种——编译时、运⾏时;3实现⽅式——接⼝、继承、抽象类。

8、UML——⼀种功能强⼤的、⾯向对象的可视化系统分析的建模语⾔[对⾯向对象系统进⾏可视化、详述、构造和⽂档化的⼯具,已成为软件建模的⼯业标准。

] 9、视图——从某个⽅⾯或⾓度出发描述系统,或表达系统某个⽅⾯特征的⼀个或多个图。

10、动作事物——时间、空间上的动作,模型的动词;最基本的是交互与状态机11、交互——⼀组对象在特定上下⽂、为达到特定⽬的进⾏⼀系列消息交换组成的动作,要列出每个操作的消息、动作次序、连接关系。

12、状态——13、⽤例——14、事件流——15、对象关联——16、可见性——描述属性和操作是否可被其他类引⽤17、活动——对象被占⽤以完成某任务,⽤矩形条表⽰。

面向对象程序设计 复习资料

1.对象(1)从概念层面讲,对象是某种拥有责任的抽象。

(2)从规格层面讲,对象是一系列可以被其他对象使用的公共接口。

(3)从语言实现层面讲,对象封装了代码和数据。

2.软件开发中的经典阶段:需求、分析、设计、规范、实现、测试、部署、维护。

3.设计7原则:开闭原则、里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪M特原则、接口隔离原则、单一职责原则。

4.面向对象的方法学:UML(统一建模语言)、RUP(统一软件开发过程)、XP(极限编程)。

开发方法:Booch、Coad、OMT、UML、OOSE、Wirfs—Brock 5.OOA——运用面向对象方法进行需求分析。

OOD——运用面向对象方法进行系统设计。

OOP——运用面向对象方法进行程序设计。

6.OOA的基本任务:是运用面向对象的方法,对问题域和系统责任进行分析和理解,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域及系统责任所需的类及对象,定义这些类和对象的属性和操作,以及它们之间所形成的结构、静态联系和动态联系。

最终目的:是产生一个符合用户需求,并能够直接反映问题域和系统责任的OOA模型及其详细说明。

优点:(1)加强了对问题域和系统责任的理解。

(2)改进与分析有关的各类人员之间的交流。

(3)对需求的变化具有较强的适应性。

(4)支持软件复用。

OOA的三大策略是:属性策略、方法策略、对象策略。

7.(1)封装:是指对象在其操作中隐藏属性。

它是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。

封装的目的是使对象的使用者和生产者分开,使对象的定义和实现分开。

例如:要从同事那里借钱,在商店购买食物,就不会抢夺同事的钱包,大翻一通,看看里面是否有足够的钱。

而应该询问他们是否可以借你一些钱,他们就会自己翻钱包。

以表示圆的一个对象作为封装的例子。

圆的操作应能计算出半径、直径、周长和面积。

假定选择存储直径,要访问直径的程序员都会选择存储直径属性,而不是通过“获取直径”的操作来访问。

面向对象程序设计总复习资料(2008-秋)

面向对象程序设计复习课(2008_秋)一、对照书本(或上课课件),搞懂有关概念1. 面向对象程序设计的基本概念面向对象(O-O)程序设计是一种新的程序设计范型。

这种范型的主要特征是:程序=对象+消息面向对象程序的主要结构特点是:第一,程序一般由类的定义和类的使用两部分组成,在主程序中定义对象并规定它们之间传递消息的规律;第二,程序中的一切操作都是通过向对象发送消息来实现的,对象接收到后,启动有关方法完成相应操作。

第三,类由继承关系产生相互间的联系。

2. 对象是现实世界的一个实体,其特性是:(1) 每一个必须有一个名字以区别于其他对象;(2) 用属性(或叫状态)来描述它的某些特征;(3) 有一组操作,每一个操作决定对象的一种行为。

(4) 对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。

类是:一组具有共同的属性特征和行为特征的对象的抽象。

类与对象的关系是抽象和具体的关系。

3. 面向对象系统的特征是:封装性、继承性和多态性(1). 将数据结构和作用于数据结构上的操作组成一个实体,数据的表示方式和对数的操作细节被隐藏起来,用户通过操作接口对数据进行操作。

这就是数据的封装。

(2). 继承机制允许派生类继承基类的数据和操作(即数据成员和成员函数),也就是说,允许派生类使用基类的数据和操作。

同时派生类还可以增加新的操作和数据。

从继承源上分,继承分为单继承和多继承。

(3). 面向对象系统的多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。

重载的概念4. 新的I/O流cin是标准输入流,在程序中用于代表标准输入设备,即键盘。

运算符“>>”表示向右cout是标准输出流,在程序中用于代表标准输出设备,即屏幕。

运算符“<<”表示向左使用cin或cout进行I/O操作时,在程序中必须嵌入头文件iostream.h5. new和delete6. 引用引用可为变量起别名,它主要用作函数参数以及函数的返回类型。

面向对象程序设计 复习资料2

面向对象程序设计复习资料(一)单项选择题1.Java是一门()语言。

A. 机器B. 汇编C. 面向过程的高级D. 面向对象的高级2. 具有相同属性和服务的一组对象的共同模板称为()。

A. 程序B. 类C. 代码D. 概念3.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符为()。

A. privateB. protectedC. publicD. static4.Java语言中的switch语句属于()语句。

A. 数据输入B. 数据输出C. 分支处理D. 循环控制5.在类的定义中,实现接口的子句所使用的关键字为()。

A. extendsB. implementsC. publicD. abstract6.在派生类的定义中,继承父类的子句所使用的关键字为()。

A. extendsB. implementsC. publicD. abstract7.下列能表示栈(stack)s1长度的是( )。

A.s1.length()B.s1.lengthC.s1.sizeD.s1.size()8.下面的异常()为文件没有找到异常。

A. NullPointerExceptionB. FileNotFoundExceptionC. ArrayIndexOutOfBoundsExceptionD. IOException9.下列不是InputStream 类的子类的是()。

A. FileInputStreamB. ObjectInputStreamC、 FileOutputStream D. DataInputStream10.进行文件输入输出操作时,最常用的系统包是()。

A. B. java.ioC. java.utilD. java.awt11.类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。

A. 产品B. 元素C. 成分D. 实例12.使用JDK运行Java程序时使用的命令是()。

面向对象程序设计课程复习资料

《面向对象程序设计》课程复习资料一、单项选择题:1.C#中每个 int 类型的变量占用()个字节的内存。

[ ]A.1B.2C.4D.82.C#应用程序中,用主方法指明程序执行的开始点,主方法的名字规定为 [ ]A. classB. mainC. MainD. MainWay3.下面所列的C#自定义标识符中,正确的是 [ ]A.@double B. $double C. #double D. ~double4.C#语言是微软.NET公共语言运行环境中内置的核心程序设计语言,是一种 [ ]A.面向过程程序设计语言B.面向对象程序设计语言C.跨平台程序设计语言D.机器语言5.C#语言中,双精度实型数据类型(double)所占用的存储空间为()个字节。

[ ]A.1B.2C.4D.86.C#应用程序中,导入其他系统预定义元素部分可以使用关键字 [ ]A. useB. namespaceC. importD. using7.下面的运算符中,优先级别最低的是 [ ]A. newB. !=C. ?:D. =8.设有整型变量x,则表达式x=5/8运算后,变量x的值为 [ ]A.0B.0.625C.0.6D.0.639.执行C#语句序列:int i; for (i = 0; i++ < 4; );后,变量i的值是 [ ]A.5B.4C.1D.010.在默认的情况下,省略的类访问修饰符是 [ ]A. privateB. publicC. protectedD. internal11.在下面的类声明中,属于私有字段的是 [ ]class Person{public string name;public string sex;private int age;double weight;}A. name sexB. ageC. weightD. age weight12.下面所列选项中,能够正确定义2行3列二维整型数组a的是 [ ]A. int [][] a = new int [2][3]B. int [ ,] a = new int [2,3]C. int [2][3]D. int [ ,] a = int [2,3]13.下面所列选项中,不能正确定义并初始化二维数组a的是 [ ]A. int [ ,] a = new int [2,3]{{1,2,3},{4,5,6}}B. int [ ,] a = new int [,]{{1,2,3},{4,5,6}}C. int [ ,] a = new int [2,3]{1,2,3,4,5,6}D. int [ ,] a = {{1,2,3},{4,5,6}}14.在C#中,下列()语句能创建一个具有 3 个初始值为""的元素的字符串数组。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计复习课(2008_秋)一、对照书本(或上课课件),搞懂有关概念1. 面向对象程序设计的基本概念面向对象(O-O)程序设计是一种新的程序设计范型。

这种范型的主要特征是:程序=对象+消息面向对象程序的主要结构特点是:第一,程序一般由类的定义和类的使用两部分组成,在主程序中定义对象并规定它们之间传递消息的规律;第二,程序中的一切操作都是通过向对象发送消息来实现的,对象接收到后,启动有关方法完成相应操作。

第三,类由继承关系产生相互间的联系。

2. 对象是现实世界的一个实体,其特性是:(1) 每一个必须有一个名字以区别于其他对象;(2) 用属性(或叫状态)来描述它的某些特征;(3) 有一组操作,每一个操作决定对象的一种行为。

(4) 对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。

类是:一组具有共同的属性特征和行为特征的对象的抽象。

类与对象的关系是抽象和具体的关系。

3. 面向对象系统的特征是:封装性、继承性和多态性(1). 将数据结构和作用于数据结构上的操作组成一个实体,数据的表示方式和对数的操作细节被隐藏起来,用户通过操作接口对数据进行操作。

这就是数据的封装。

(2). 继承机制允许派生类继承基类的数据和操作(即数据成员和成员函数),也就是说,允许派生类使用基类的数据和操作。

同时派生类还可以增加新的操作和数据。

从继承源上分,继承分为单继承和多继承。

(3). 面向对象系统的多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。

重载的概念4. 新的I/O流cin是标准输入流,在程序中用于代表标准输入设备,即键盘。

运算符“>>”表示向右cout是标准输出流,在程序中用于代表标准输出设备,即屏幕。

运算符“<<”表示向左使用cin或cout进行I/O操作时,在程序中必须嵌入头文件iostream.h5. new和delete6. 引用引用可为变量起别名,它主要用作函数参数以及函数的返回类型。

有变量的引用、参数引用和返回值引用。

7. 类的定义clsaa 类名{ private: (可缺省)私有数据成员和函数成员protected:1 / 15保护段数据成员和函数成员public:公有数据成员和函数成员};成员函数的定义第一种方式是在类定义中只给出成员函数的原形,而成员函数体在类的外部定义。

第二种方式是将成员函数定义在类的内部,即定义为内置函数。

(1) 隐式定义(2) 显式定义8.对象中成员的访问不论是数据成员,还是成员函数,只要是公有的,就可以被外部函数直接访问,访问的一般格式是:对象名. 数据成员名或对象名. 成员函数名(实参表)外部函数不能引用对象的私有成员类成员的访问属性类的公有成员不但可以被类中成员函数访问,还可以在类的外部通过类的对象进行访问。

类的私有成员只能被类中成员函数访问,不能在类的外部通过类的对象进行访问。

9. 构造函数的特点:(1)构造函数的名字必须与类名相同。

(2)构造函数可以有任意类型的参数,但不能具有返回类型。

(3)定义对象时,编译系统会自动地调用构造函数。

(4)构造函数也是成员函数,函数体可写在类体内,也可写在类体外。

(5)构造函数被声明为公有函数,但它不能象其他成员函数那样被显式地调用,它是在定义对象的同时被调用的。

10. 析构函数也是特殊成员函数,用于释放对象。

(1)析构函数与构造函数名字相同,但它前面必须加一个波浪号(~)。

(2)析构函数没有参数,也没有返回值,而且不能重载,因此在一个类中只能有一个析构函数。

(3)当撤消对象时,编译系统会自动地调用析构函数。

11. 友元:不属于任何类的一般函数,另一个类的成员函数,整个的一个类。

(1) 友元函数不属于任何类的一般函数(2) 友元成员该函数是另一个类的成员函数,前加上friend表示该另类的成员函数,又是本类的友元成员。

(3). 友元类在类内说明一个类(该类前面已定义),前加上friend表示该类是本类的友元类。

友元类的所有成员函数可以访问它自己类私有成员又可本类的私有成员12. 派生类的定义基类:class 类名{类的内容};2 / 15声明派生类:class 派生类名: 继承方式基类名{//派生类新增的数据成员和函数成员};继承方式可为公有继承(用public)、私有继承(用private或缺省)和保护继承(用protected)13. 基类成员在派生类中的访问属性(重点)14. 派生类对基类成员的访问规则(重点)15. 派生类的构造函数和析构函数(1) 派生类的构造函数和析构函数执行顺序当创建派生类对象时,首先执行基类的构造函数,随后再执行派生类的构造函数;当撤消派生类对象时,则先执行派生类的析构函数,随后再执行基类的析构函数。

(2). 派生类的构造函数和析构函数的构造规则一般格式为:派生类名(参数总表):基类名(参数表){//派生类新增成员的初始化语句}其中基类构造函数参数,来源于派生类的构造函数的参数总表,也可以用常数值。

16. 编译时的多态性与运行时的多态性静态联编(前期联编)静态联编要求在程序编译时就知道调用哪个函数,就决定如何实现某一动作。

动态联编(后期联编、滞后联编)一直要到程序运行时才能确定调用哪个函数。

系统在运行时才动态完成的联编。

静态联编支持的多态性称为编译时多态性,也称静态多态性。

在C++中,编译时多态性是通过函数重载和运算符重载实现的。

动态联编支持的多态性称为运行时多态性,也称动态多态性。

在C++中,运行时多态性是通过继承和虚函数来实现的。

函数重载:类外的一般的函数、成员函数和构造函数都可以重载17.运算符重载:除了可以对函数重载外,还可以对大多数运算符实施重载。

外部函数类的友元函数是类的成员函数成员运算符函数定义的语法形式成员运算符函数的原型在类的内部声明格式为:class X{//...返回类型 operator 运算符(形参表);//...};18.引入派生类后的对象指针引入派生类后,由于派生类是由基类派生出来的,因此指向基类的指针和指向派生类的指针是相关的。

3 / 15(1)基类的指针可以指向它的公有派生类的对象。

但不允许指向它的私有派生类的对象。

(2)派生类的指针不允许指向它的基类的对象。

(3)基类的指针指向它的公有派生类的对象时,只能用它来直接访问派生类中从基类继承来的成员,而不能直接访问公有派生类中定义的新成员。

19. 模板的概念(1).函数模板与模板函数所谓函数模板,就是写一个函数模子,用这个模子套印出许多功能相同,参数类型和返回类型不同的函数。

模板函数:函数模板实例化后的具体函数。

(2)类模板和模板类类模板(也称为类属类或类生成类)是:允许用户为类定义一种模子,使得类中的某些数据成员,某些成员函数的参数或者返回值,能取任意数据类型20. 文件的输入输出在含有文件操作的程序中,必须有如下的预处理命令:# include <fstream.h>复习思考题、即考试的A、B、C、D选择题和填空题一、分清下面的概念,那些是正确的,那些是错误的1. 面向对象程序的主要结构特点之一√程序一般由类的定义和类的使用两部分组成。

程序一般由函数定义和函数的使用两部分组成。

程序一般由变量的定义和变量的使用两部分组成。

程序一般由对象的定义和对象的使用两部分组成。

√程序中的一切操作都是通过调用函数来实现的。

程序中的一切操作都是通过定义函数来实现的。

√程序中的一切操作都是通过向对象发送消息来实现的。

程序中的一切操作都是通过定义类来实现的。

2.对象是现实世界中的一个实体,其特性√每个对象必须有一个名字。

有属性描述。

有一组操作。

√必须有一个关键字,以示区别。

√定义对象时会自动调用构造函数。

一定要定义一个构造函数。

一定要有二个以上数据。

3.面向对象系统的特性是√封装性√继承性√多态性完整性唯一性二义性可重用性安全性4.类和对象之间的关系是定义和被定义的关系。

调用和被调用的关系。

类即是对象数组。

√抽象和具体的关系。

√类型和变量之间的关系。

型和值的关系。

结构类型和结构体的关系。

指针和所指的对象的关系。

5.类的概念是对同一类整型数据的集合。

√对一组具有共同的属性特征和行为特征的对象的抽象。

类即是对象数组。

各种对象的集合。

√同一类数据的集合。

同一记录的集合。

同类函数的集合。

现实世界中所有对象的集合。

6.构造函数的特征√构造函数的函数名与类名相同。

构造函数必须说明返回类型。

√编译系统会自动调用构造函数。

√构造函数可以重载。

构造函数的函数名与类名不相同。

程序中要有调用构造函数的语句。

7.析构函数的特征√一个类中只能定义一个析构函数。

析构函数名与类名不同。

析构函数的定义只能在类体内析构函数可以有多个参数。

一个类中能定义多个析构函数。

√析构函数名与类名相同并加~。

√编译系统会自动调用析构函数。

析构函数可以有多个参数8.关于成员函数特征的下述描述成员函数一定是内置函数。

√成员函数可以重载。

√成员函数可以设置参数的缺省值。

√成员4 / 15函数可以是静态的。

√类定义中只给出成员函数的原型,而成员函数在类外定义。

√类定义中只给出成员函数的原型,而成员函数在类外定义并在之前加inline。

成员函数一定要在类内定义。

可在类内定义。

9.下列的各类函数中,不是类的成员函数构造函数析构函数友元函数拷贝构造函数√主函数√一般函数√标准函数缺省参数的构造函数10.友元的作用是什么,一个类的友元可以访问该类的什么√提高程序的运行效率。

加强类的封装性。

√实现数据的隐藏性。

增加成员函数的种类√私有成员和公有成员只能是私有成员只能是公有成员成员函数11.对基类和派生类的关系描述中派生类是基类的具体化。

√派生类是基类的子集。

√派生类是基类定义的扩延。

派生类是基类的组合。

√无论哪种派生,基类的私有成员不允许派生类的成员函数访问。

无论哪种派生,基类的公有成员允许派生类的成员函数访问。

√无论哪种派生,基类的保护成员允许派生类的成员函数访问。

√无论哪种派生,基类的保护成员不允许派生类的成员函数访问。

12.派生类的对象对它的基类成员中,可以访问的是√公有继承的公有成员。

公有继承的私有成员。

公有继承的所有成员。

私有继承的公有成员。

私有继承的私有成员。

私有继承的所有成员。

√公有继承的保护成员。

私有继承的保护成员。

13.对定义几个重载函数的要求中,错误的是。

不可重载的函数的是。

√要求参数的个数不同。

要求参数中至少有一个类型不同。

要求函数名相同。

√要求函数的返回值类型一定不同。

普通的成员函数。

友元函数。

外部函数。

√析构函数14.可定义作运算符重载函数的是构造函数。

√成员函数。

√友元函数。

√类以外的函数。

析构函数。

无返回值的函数。

15.设置虚基类的目的是,对虚基类的论述,正确的是简化程序。

相关文档
最新文档