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

合集下载

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

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

《面向对象程序设计》总复习第一部分各章复习要点第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. 代码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流与文件操作

C++面向对象程序设计期末复习资料

C++面向对象程序设计期末复习资料

一.选择题(20题,共30分)●作用域运算符的功能●设置虚基类的目的●构造函数的特征●析构函数的说法●重载函数在调用时选择的依据●静态成员的特性●友元●派生类的描述●运算符在C++中不能被重载?●动态联编的描述●纯虚函数和抽象类的描述●抽象类的使用●delete删除一个动态对象●new运算符的下列描述●C++与C语言关系的描述●类定义中,错误的语句书3.1.1(7)●自动调用该类构造函数次数●静态数据成员的描述●派生类的描述●派生类的构造函数的初始化列表中,不能包含●虚基类的声明●赋值兼容规则●虚函数●纯虚函数表述●抽象类表述●重载运算符函数●成员函数重载的运算符、友元函数重载的运算符●关键字class和typename●类模板表述●重载了运算符<< 书7.2节●语句ofstream f()二.填空题(15空,共30分)●标准输入输出流对象cin cout●类中的数据和成员函数●类都有一个隐含的指针指向:正在调用成员函数的对象●非成员函数访问类成员●虚基类的目的:解决二义性问题●基类数据成员的初始化●operator++●运算符函数调用格式●异常处理的保留字●异常错误处理函数terminate() 、set_terminate()三.程序的执行、填空(4题,共20分)四.编程题(3小题,共20分)一.选择题1.如果表达式++i*k中的“++”和“*”都是重载的友元运算符,若采用运算符函数调用格式,则表达式还可以表示为 A 。

A. operator*(i.operator++(),k)B. operator*(operator++(i),k)C. i.operator++().operator*(k)D. k.operator*(operator++(i))2.在下列成对的表达式中,运算符“/”的意义相同的一对是 D 。

A.8/3和8.0/3.0B.8/3.0和8/3C.8.0/3和8/3D.8.0/3.0和8.0/33.如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为 C 。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

面向对象程序设计期末复习题一、单项选择题1.对于类中定义的成员,其隐含访问权限为【 B 】A) public B) private C) static D)protected2.关于类和对象不正确的说法是【 B 】A) 类是一种类型,它封装了数据和操作 B) 一个类的对象只有一个C) 对象是类的实例D) 一个对象必属于某个类3.下面关于对象概念的描述中,【 C 】是错误的。

A)对象代表着正在创建的系统中的一个实体B)对象就是C语言中的结构体变量C)对象是一个状态和操作(或方法)的封装体D)对象之间的信息传递是通过消息进行的4. 使用派生类的主要原因是【 A 】。

A)提高代码的可重用性B)提高程序的运行效率C)加强类的封装性D)实现数据的隐藏5. 有关析构函数的说法不正确的是【D 】A)析构函数有且只有一个B)析构函数无任何函数类型C)析构函数没有形参D)析构函数的作用是在对象被撤消时收回先前分配的内存空间6. 声明一个类的对象时,系统自动调用一个函数;撤消对象时,系统自动调用一个函数;该函数为【 C 】A) 成员函数;构造函数B) 复制构造函数;析构函数C) 构造函数;析构函数D) 析构函数;复制构造函数7. 下列关于运算符重载的描述中,【 D 】是正确的。

A)运算符重载可以改变操作数的个数B)运算符重载可以改变优先级C)运算符重载可以改变结合性D)运算符重载不可以改变语法结构8. 能用友元函数重载的运算符是【 A】。

A)+ B)= C)[] D)->9.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的【 A 】A) private成员B) protected成员C) public成员D) 友元10.在C++中,要实现动态联编,必须使用【D】调用虚函数A) 类名B) 派生类指针C) 对象名D) 基类指针11.若一个类中含有纯虚函数,则该类称为【 A 】A) 抽象类B) 纯基类C) 派生类D) 基类12.当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式【 B 】A) ios:: out B) ios:: inC) ios::in|ios::out D) ios::binary13.通常拷贝构造函数的参数是【 C 】。

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

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

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)封装:是指对象在其操作中隐藏属性。

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

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

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

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

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

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

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

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

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

《面向对象程序设计》课程期末复习资料《面向对象程序设计》课程讲稿章节目录:第一章、C++基础(16个知识点)01 计算机求解问题的过程02 编程的步骤03 程序设计方法04 程序设计基本概念05 C++程序集成开发环境简介06 C++程序实例07 C++源程序的组成08 C++源程序的组成元素09 C++与C的主要差异–符号常量和标准输入输出流10 C++与C的主要差异–内联函数11 C++与C的主要差异–带默认形参值的函数12 C++与C的主要差异–函数重载13 C++与C的主要差异–动态内存分配和释放14 C++与C的主要差异–动态内存分配和释放程序实例15 C++与C的主要差异–引用和返回引用的函数16 C++与C的主要差异–函数的引用调用第二章、面向对象方法(27个知识点)01 面向对象方法基本概念–对象、类、实例和消息02 面向对象方法基本概念–封装、继承和多态03 类的定义04 构造函数05 对象的定义和访问06 对象的定义和访问程序实例07 类成员的访问控制08 类成员的访问控制程序实例09 析构函数11 类声明和类实现的分离12 类的常量成员13 类的静态数据成员14 类的静态成员函数15 this指针16 类的友元17 类的对象成员–基本概念18 类的对象成员–对象成员的声明、初始化和访问19 自定义类的运算符重载概述20 类成员函数形式的运算符重载21 类友元形式的运算符重载22 赋值运算符和下标运算符重载程序实例23 类设计实例24 面向对象方法程序实例–类和对象的基本定义、构造函数和析构函数25 面向对象方法程序实例–静态成员和多文件结构26 面向对象方法程序实例–友元和运算符重载27 面向对象方法程序实例–对象成员第三章、继承与多态(17个知识点)01 继承概述02 派生类定义03 派生类构造函数和析构函数04 派生类构造函数和析构函数程序实例05 函数重定义和派生类的继承方式06 多重继承下的派生类定义07 多重继承中的二义性问题08 虚拟继承和虚基类09 类型兼容10 多态性的概念和实现原理11 虚函数13 纯虚函数和抽象类14 继承与多态程序实例–派生类定义和函数重定义15 继承与多态程序实例–多重继承16 继承与多态程序实例–虚拟继承和虚函数17 继承与多态程序实例–抽象类和纯虚函数第四章、输入输出流(16个知识点)01 输入输出流概述02 输入输出流对象03 输入输出流的插入和提取运算符04 输入输出流的插入和提取运算符程序实例05 输入输出流的put函数06 输入输出流的get函数07 输入输出流的getline函数08 输入输出流的write函数09 输入输出流的read函数10 输入输出流的write、read函数程序实例11 文件随机读写概述和相关函数12 文件随机读写程序实例13 自定义类型数据的标准输入输出和文本文件输入输出14 自定义类型数据的二进制文件输入输出15 输入输出流程序实例–输入输出流操作16 输入输出流程序实例–插入运算符和提取运算符重载第五章、模板(7个知识点)01 函数模板的定义和使用02 函数模板程序实例03 类模板的定义04 类模板的使用05 类模板的静态成员06 模板程序实例–函数模板07 模板程序实例–类模板一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分1、面向对象方法的基本观点是一切系统都是由( C )构成的。

A、结构B、模块C、对象D、类★考核知识点: 面向对象方法基本概念–对象、类、实例和消息参见讲稿章节:2-01附1.1.1(考核知识点解释):面向对象方法的基本观点是一切系统都是由对象构成的,它们的相互作用、相互影响,构成了大千世界的各式各样系统。

2、下列关于主函数的叙述中正确的是( B )。

A、一个程序可以有多个主函数B、程序从主函数开始执行C、一个程序可以没有主函数D、主函数是一个特殊的函数,因此其结构与其他函数不同★考核知识点: C++源程序的组成参见讲稿章节:1-07附1.1.2(考核知识点解释)一个C++程序一般由多个函数组成。

这些函数可以是用户根据需要编写的自定义函数,也可以是直接使用系统提供的标准库函数。

函数体用一对花括号“{”和“}”括起来。

任何一个程序必须有且仅有一个主函数main,程序从主函数开始执行。

3、有关带默认参数的函数的描述正确的是( D )。

A、只能在函数定义时设置默认参数值B、只能在函数声明时设置默认参数值C、函数调用时,必须使用默认的参数值,不能给出新的实参值D、设置默认参数时,应该设置最右边的若干个参数的默认值★考核知识点: C++与C的主要差异–带默认形参值的函数参见讲稿章节:1-11在调用函数时,需要针对函数中的每一个形参给出对应的实参。

C++中允许在函数定义或函数声明时给出默认的形参值。

在调用函数时,对于有默认值的形参,如果没有给出相应的实参,则函数会自动使用默认形参值;如果给出相应的实参,则函数会优先使用传入的实参值。

默认形参值可以在两个位置指定:如果有函数声明,则应在函数声明处指定;否则,直接在函数定义中指定。

默认形参值必须严格按照从右至左的顺序进行指定。

4、有关重载函数的描述正确的是( C )。

A、函数名相同的函数就是重载函数B、函数名相同但返回值类型不同的函数就是重载函数C、函数名相同但参数个数或类型不同的函数就是重载函数D、函数功能相同的函数就是重载函数★考核知识点: C++与C的主要差异–函数重载参见讲稿章节:1-12附1.1.4(考核知识点解释)C++允许不同的函数具有相同的函数名,这就是函数重载。

当调用一个函数时,除了要写出函数名,还要根据函数的形参列表传递实参值。

对于函数名相同的多个函数,要在调用时能够区分开到底要调用哪个函数,只能根据传递实参在数量或类型上的不同来进行判断。

也就是说,函数名相同的函数形参列表不能完全一样,否则会因无法区分而报错。

5、假设堆内存分配均成功,则下面程序段完全正确的是( A )。

A、int *p=new int(3);cout<<*p;delete p;B、int *p=new int[5]={1,2,3,4,5};for(int i=0;i<5;i++)cout<<p[i];delete []p;C、int *p=new int[5];for(int i=0;i<5;i++,p++) {*p=i; cout<<*p;}delete []p;D、以上程序段均正确★考核知识点: C++与C的主要差异–动态内存分配和释放参见讲稿章节:1-13在C++中,使用new和delete这两个关键字完成堆内存分配和释放的操作。

堆内存分配new的用法为:new 数据类型[表达式]; 其中,表达式可以是常量,也可以是变量,其作用与声明数组时[]里的表达式一样,用于指定元素数目。

如果只申请一个元素的空间,那么[表达式]部分可以不写:new 数据类型; 对于只申请一个元素空间的情况,在分配内存的同时还可以进行内存初始化工作:new 数据类型(表达式); 其中,表达式确定了分配的内存中初始存储的数据。

堆内存释放delete的用法为:delete []p; 如果p所指向的堆内存只包含一个元素,那么还可以将[]省掉,即:delete p; 必须使用指针保存分配的堆内存首地址,这是由于delete须根据首地址进行堆内存释放,如果不知道首地址则无法释放内存,从而造成内存泄漏。

6、变量的引用,其含义是指该变量的( C )。

A、值B、类型C、别名D、地址★考核知识点: C++与C的主要差异–引用和返回引用的函数参见讲稿章节:1-15附1.1.6(考核知识点解释)引用就是别名,变量的引用就是变量的别名,对引用的操作就是对所引用变量的操作。

7、已知“int a=10,b=8;int &r=a; r=b;cout<<a<<","<<b<<","<<r;”,则输出为( D )。

A、10,8,10B、10,8,8C、8,8,10D、8,8,8★考核知识点: C++与C的主要差异–引用和返回引用的函数参见讲稿章节:1-15附1.1.7(考核知识点解释)引用就是一个别名,声明引用不会再为其分配内存空间,而是与所引用对象占据同一片内存空间。

因此,对引用的操作与对所有引用对象的操作效果完全一样。

8、已知“int a=10,*p;int *&r=p; r=&a;*p=20;cout<<a;”,则输出为( B )。

A、10B、20C、不确定值D、程序有错误★考核知识点: C++与C的主要差异–引用和返回引用的函数参见讲稿章节:1-15附1.1.8(考核知识点解释)引用就是一个别名,声明引用不会再为其分配内存空间,而是与所引用对象占据同一片内存空间。

因此,对引用的操作与对所有引用对象的操作效果完全一样。

可以为指针变量声明引用,其声明形式为:数据类型 *&引用名=指针变量名;9、下列关于类和对象的叙述中,错误的是( A )。

A、一个类只能有一个对象B、对象是类的具体实例C、类是某一类对象的抽象D、类和对象的关系是一种数据类型与变量的关系★考核知识点: 面向对象方法基本概念–对象、类、实例和消息参见讲稿章节:2-01附1.1.9(考核知识点解释)类是现实世界中客观事物的抽象,即将具有相似静态属性和动态行为的对象集合归纳为一个类。

类是用户自定义的数据类型,与基本数据类型一样,需要声明类数据类型的变量,即对象,通过对一个个的实际对象实施不同的操作,来解决问题。

声明对象的过程叫做类的实例化。

10、有如下类声明:class Sample { int x; };则Sample类成员x是Sample类的( C )。

A、公有数据成员B、保护数据成员C、私有数据成员D、以上选项都不正确★考核知识点: 类成员的访问控制参见讲稿章节:2-07附1.1.10(考核知识点解释)类中可以出现多个访问说明符,每个访问说明符可以出现多次,不同的访问说明符出现的顺序没有限制。

如果没有指明是哪种访问级别,C++编译系统默认为私有(private)成员。

11、C++中,关于构造函数和析构函数,正确的描述是( C )。

A、在定义类时,必须自定义构造函数和析构函数,在创建对象时自动调用构造函数,在释放对象时自动调用析构函数B、构造函数和析构函数均可以重载C、已知类Student以及Student *p; 在使用p=new Student;时自动调用无参构造函数创建动态对象,在delelte p;时自动调用析构函数释放动态对象D、构造函数和析构函数都可以成为虚函数★考核知识点: 构造函数、析构函数参见讲稿章节:2-04,2-09附1.1.11(考核知识点解释)在C++中,对象的初始化工作是由构造函数来完成的。

相关文档
最新文档