2013面向对象程序设计复习纲要
面向对象程序设计复习要点
《面向对象程序设计》总复习第一部分各章复习要点第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部分面向对象的开发基础(1)掌握类与对象的基本概念,类和对象之间的关系。
(2)类与对象的特性,包括封装、继承和多态。
(3)掌握软件分层的思想,一般如何分层,各层的职责。
(4)了解C/S体系结构、B/S体系结构的组成及特点。
(5)Java的基本数据类型及其对应的包裹类。
(6)常用的Java包:ng,java.io,java.util,java.awt,java.swing,java.awt.event,java.sql等。
(7)String 和StringBuffer的区别。
(8)String 的length()方法与数组的length属性。
(9)实例变量与类变量的区别。
(10)实例方法与类方法的区别。
(11)构造方法的作用及其特点。
(12)了解两个对象同一及相等的概念。
(13)数组的应用,掌握常用的查找及排序算法。
第2部分基于UML的系统分析与设计(1)了解UML的产生和发展。
(2)了解Rose的基本使用。
(3)用例图、类图及顺序图的作用、组成元素及三者之间的关系。
(4)面向对象设计中水平分解及垂直分解的方法。
(5)将继承关系的类图映射为关系数据库的方法。
第3部分业务逻辑层开发(1)了解方法签名、方法重载、方法重写。
(2)异常的概念及Java的异常处理机制。
(3)运行时异常与一般异常有何异同?(4)构造方法是否可以继承?(5)对象塑性:自动类型转换及强制类型转换。
(6)多态性的实现方法。
(7)抽象类与抽象方法。
(8)终结类与终结方法。
(9)接口与抽象类的区别。
(10)了解Collection接口及其类层次。
(11)V ector及ArrayList的常用方法。
(12)Enumeration及Iterator类的使用及区别。
(13)了解面向接口编程的思想。
第4部分界面层与数据层开发(1)了解A WT及Swing类及其常用组件。
(2)掌握委托事件处理机制。
(3)扩充适配器类的优点是什么?(4)单例模式的实现方法。
面向对象程序设计复习提纲
面向对象程序设计复习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中出现的次数。
《面向对象程序设计》复习提纲
作用域与生命期 作用域(五种)、可见性、::运算符的两种用法、支配(覆盖)规则 生命期(三种)、理解静态局部变量、静态全局变量new和delete对堆区操作的基本用法
string类、字符串对象的概念(区分cstring、string.h和string)
scanf、printf)
标准输入输出流类iostream,标准输入流对象cin、标准输出流对象cout、流插入运算符<<、流提取运算符>>的基本概念及用法;输入输 出流中常用控制符的使用(setw、iomanip头文件)
const定义常变量,必须初始化 引用与指针
引用的概念、声明方法(必须初始化、引用常量)、使用方法、传引用 (双向传递)、用const修饰引用(常量引用常量)
C++程序的上机步骤(编辑cpp、编译obj、连接exe、运行)
2、类和对象(5')
面向对象程序设计的三大特点:封装、继承和多态性
理解用class和struct声明类的异同
类中的两种成员,三种访问权限控制符的区别 类的声明和成员函数定义的规范写法
对象的存储结构
this指针的概念及用法
3、关于类和对象的进一步讨论(40')
7、输入输出流(不考)
8、C++工具(不考)
概念、作用、声明及定义方法、调用时机
特点:无名、有参、无返回值
缺省拷贝构造函数、深拷贝与浅拷贝
拷贝赋值操作
概念、作用、声明及定义方法、调用时机(区别于拷贝构造函
数)
特点:有名、有参、有返回值
缺省拷贝赋值操作、深拷贝与浅拷贝
面向对象程序设计Java复习提纲
实用文档Unit1:1.面向对象中类的概念:类是创建对象的模版,定义了对象的属性和方法;类中的属性赋予确定的取值得到该类的一个对象,对象是类的实例。
2.阐述类属性和操作的概念和作用?属性:已被命名的类的特性,描述对象的特征操作:是类的特征,用来定义如何激活该类对象的行为,类操作是对类属性的处理3.面向对象中对象的概念所要解决的现实世界的问题抽象为软件对象;需求描述问题域中拥有属性的实体或概念都可以看做对象。
4.阐述类与对象的联系类是一组对象的描述类是创建对象的模板,对象是类的实例类是一种数据类型,可以使用类名称声明对象变量5.阐述类与对象的区别抽象和具体,模板与实例6.类是否是数据类型?与你学过的其他类型进行比较,有何不同?类是一种数据类型,称之为对象类型,所以可以使用类名称声明对象。
类可以包含多个数据类型。
7.变量UML类图中类及其类中属性和方法如何表示?类名,类属性,类方法,各占一行8.UML类图中类与类之间的继承关系如何表示?其代表的含义是什么?实心线空心箭头;指一个类自动拥有另一个类的所有数据和操作。
9.UML类图中类与类之间的关联关系如何表示?其代表的含以是什么?实用文档单向为实心箭头,双向为实心直线;指一个类拥有另一个类的一到多个对象10.如果UML类图中类A与类B之间是1对多的关联关系,关联属性的数据类型是什么?类B对象的容器类型11.如果UML类图中类与类之间1对1的关联关系中,关联属性的数据类型是什么?被关联类的对象类型12.根据用户需求,建立面向对象设计方案—UML类图的方法和步骤是什么?分析需求,找出类,类之间的关系,类的属性,定义类的方法,绘制类图13.一般情况下,每个类都应该提供哪些常用的方法?增删改查,add, remove, set, get14.一般情况下,包含容器的类应该提供哪些常用的方法?获取容器,返回容器迭代器或迭代器接口Unit2:1.撰写java类的具体语法2.根据Java类,Java对象变量如何声明?Java对象如何创建与使用?类名变量名(参数); new方法3.什么是Java引用(变量),其内涵是什么?地址,其值指向对象所在内存中的位置。
面向对象程序设计复习提要(不重要)
线程优先级
设置线程优先级,但需要注意 公平性和性能问题。
线程池
使用线程池管理线程,避免频 繁创建和销毁线程。
数据库访问技术
ORM框架
使用ORM框架(如SQLAlchemy)进行数 据库操作,实现面向对象的数据库访问。
SQL查询
编写SQL查询语句,执行数据库操作。
事务处理
使用事务处理保证数据一致性。
模板方法模式
模板方法模式是一种行为型设计模式,它在一个方法中定义了一个算法的骨架,将某些步骤延迟到子 类中实现。模板方法模式可以用来创建可复用的算法框架,使得子类可以在不改变算法结构的情况下 定制自己的行为。
模板方法模式的主要组成部分包括模板方法、抽象类和具体实现类。模板方法定义了算法骨架,抽象 类提供了模板方法的框架,具体实现类则提供了算法的某些步骤的具体实现。
里氏替换原则有助于确保程序中 的逻辑正确性和稳定性,防止因 使用不合适的对象而导致的错误 或异常。
应用
实现里氏替换原则的方法包括遵 守继承的语义、使用设计模式等, 通过这些方式确保子类能够正确 地实现基类的行为和功能。
依赖倒置原则
要点一
定义
依赖倒置原则(Dependency Inversion Principle)是面向对象设计 的基本原则之一,它主张高层模块不应 该依赖于低层模块,它们都应该依赖于 抽象;抽象不应该依赖于细节,细节应 该依赖于抽象。
异常处理
捕获异常
使用try-except语句捕获和处理异常。
抛出异常
使用raise语句抛出异常。
自定义异常
通过继承内置的Exception类来自定义异常。异常链在异常对来自中包含原始异常,以便于调试和跟踪。
多线程编程
面向对象程序设计复习提要(不重要)
char ID[10]; char Name[10] ……
student
char ID[10]; char Name[10] float score; …
void display()
{ person::display(); cout<<score<<endl;}
继承的一个作用就是 代码重用,即从基类 派生子类,子类无需 修改基类的代码,就 可以直接拥有基类的 成员,然后增加少量 代码就可以实现特殊 功能,这就实现了代 码的重用;另一个作 用是扩充系统,即许 派生类在继承父类共 性的基础上,增加新 的属性和操作来实现 特殊功能。
学生类 属性: 学号; 姓名; 专业; 操作: 查询属性get(); 修改属性modify(); 打印属性print();
二、复习要点
第2章 C++语言基础
1. C++程序的一般结构 一个C++程序一般可以分成四 个部分:预处理指令、全局说 明(包括对象类的定义)、程 序的主函数和用户自定义的子 函数,如右图所示。一个C++ 程序由一个或多个源代码文件 构成。C++的源代码文件分为 两类:头文件(.h)和源程序文 件(.cpp)。
4.2.1 派生类的定义
class <派生类名>: <继承方式> <基类名> { <派生类新定义成员> }; <继承方式>有三种: 公有继承(public); 私有继承(private); 保护继承(protected) ; 缺省情况下为私有继承。
《面向对象程序设计》复习资料
《面向对象程序设计》课程期末复习资料《面向对象程序设计》课程讲稿章节目录:第一章、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 )构成的。
程序设计基础复习纲要(2012-2013)
《程序设计基础》复习纲要Chapter 1~2 Hello, World1.[了解]软件开发的3个阶段:分析、设计与实现;实现又细分为编码、调试和测试。
其中关键概念是反馈。
(§1.6 p22)2.[记忆]C++之父是Bjarne Stroustrup3.[识记]C++注释代码:①块注释 /* comments */ ②行注释 // comments4.[识记]cin和cout都是标准库中预定义的对象,不是C++的关键字。
5.[理解]C++源代码通常由头文件(*.h)和源文件(*.cpp)构成。
#include指令用于包含头文件,出于简化,作者提供了头文件std_lib_facilities.h用于本课程的学习。
6.[理解]C++源文件是供程序员阅读的,它不能直接执行。
C++编译器负责将C++源文件转换为二进制目标文件,然后连接器再将目标文件与库的目标代码连接生成可执行的二进制文件(p29)。
也即,从C++源文件到可执行文件须经过两个阶段:编译和连接。
于是程序中的错误按发生的阶段可分为编译时错误、连接时错误、运行时错误以及逻辑错误。
7.[了解]可移植性(§0.2.3),例如:绝大多数C++源代码是可移植的、目标文件及可执行程序不可移植。
本课程强调编写可移植的程序。
[编程题]1.经典例程Hello, World(ex2-2)Chapter 3 对象、类型和值1.[理解、重点、难点]基本概念(§3.8 p44):类型的概念是C++和大多数编程语言的核心。
在C++中,几乎一切都有类型(变量、常量、表达式的运算分量,表达式的值,函数的参数,函数的返回值,等等)。
类型定义了一组可能的值.和一组操作..(作用其对象上);对象是一块内存区域,存放指定类型的值;值是一组二进制位,按给定类型来解释其含义;变量是命名了的对象;声明1是命名一个对象的语句;定义2是为一个对象分配分配内存的声明。
面向对象程序设计复习纲要
第1章C++的初步知识1、cout必须与“<<”一起使用;cin要与“>>”配合使用。
2、用const定义常变量const 数据类型常量名= 值;3、函数调用在前定义在后,必须进行原型说明。
函数类型函数名(参数表);4、函数重载能实现编译时多态性重载函数必须具有不同的参数个数,或不同的参数类型。
5、函数模板template <typename T>通用函数的定义6、有默认参数的函数如果一个函数有n个默认参数,则其调用方式就有n+1种。
7、变量的引用int a; int &b = a; // b是变量a的“引用”,即a的别名当引用作为函数的参数、函数的返回类型或作为类的数据成员时,说明引用时不可初始化。
8、说明内联函数的关键字:inline9、动态分配/撤销内存的运算符new和deleteint * pn = new int (123); delete pnint * pnArr = new int [8]; delete [ ] pcArr;第2章类和对象1、面向对象程序设计语言应具有的要素:封装、继承、多态与抽象。
2、类是对象的抽象,对象是类的具体实例。
类是抽象的,不占内存。
对象是具体的,占有内存。
2、在C++中声明类的关键字是class。
在类中关键字private、protected和public分别表明成员为私有的、保护的和公有的。
在C++中,声明类也可以使用关键字struct。
3、在类体中定义的函数被自动当作内联成员函数。
说明成员函数为内联函数的关键字是inline。
4、对象成员的引用Student sO, * pO = &sO;Student & rs = sO;cout << sO.Number( ) << ( ) << pO->Address( );第3章关于类和对象的进一步讨论1、构造函数:不能有返回值,不能指定函数类型;可以带参数,可以重载,可以使用默认参数;构造函数名为“类名”;在构造对象时由系统自动调用。
2013级面向对象技术复习提纲
2012级面向对象技术复习提纲概念部分1 理解面向对象的思想(封装性、继承性、多态性),作出一个简述。
2 理解多态性的概念和应用,理解动态绑定机制。
3 什么是用例图,用例图有哪些部分组成。
用例图中参与者之间的关系有哪些?用例之间的关系有哪些?4 试描述用例图在UML中的地位和作用。
5 掌握用例模型的获取方法。
6 用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。
7 对象与类的概念;类图有哪些元素构成?类之间的关系有哪些?掌握UML中类图的绘制方法。
8 简述类的聚合和组合关系的异同点。
9在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。
10什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型。
11理解对象图的概念,对象图的适用场景以及它的优缺点。
12互图(时序图与协作图)的概念与作用,掌握其的绘制方法。
13、状态图概念与作用,掌握活动图、状态图的绘制方法。
14类的设计原则包括哪些内容?15 包图与组件图的概念,掌握包图的设计原则,包括稳定性和抽象度的衡量方法。
16掌握设计模式、软件复用的概念,掌握所介绍的各种设计模式(单实例、工厂、适配器、对象装饰、桥接、职责链、策略等)的用途,类图,以及相关实例。
综合部分17观察一部电梯的运行方式,并用状态图描述它的各种状态(简化为“第一层”、“向上运动”、“向下运动”、“等待”、“运动到第一层”五种状态)和可能转移。
18简单的数字钟包含两个按钮A和B,系统启动后进入显示时间(时、分、秒)状态。
在显示时间状态下按钮A用于切换显示时间->设置小时->设置分钟->显示时间等状态;在设置小时、设置分钟状态下按B键用于修改时间。
试画出其状态转换图。
19 用状态图描述顾客在A TM机上的操作过程。
A TM机主要包括等待顾客插入磁卡的起始状态和结束服务的终止状态,以及输入密码、选择服务类型、存款及取款等状态。
顾客插入磁卡后进入输密码状态,当密码输入正确时进入选择服务类型状态,当输入密码不正确时,停留在原状态,但如果三次不正确,服务结束。
《面向对象程序设计》复习资料
《面向对象程序设计》课程期末复习资料《面向对象程序设计》课程讲稿章节目录:第一章、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 )构成的。
面向对象程序设计课程期末复习提要
《面向对象程序设计》课程期末复习提要中央电大理工部计算机教研室《面向对象程序设计》课程是中央电大计算机科学与技术专业(本科)一门必修的专业基础课。
该课程主要介绍如何用C++语言进行面向对象程序设计,因此C++语言的介绍是本书的重点,也是学员需要掌握的重点。
下面按照主教材内容次序给出具体复习要求,供同学们进行期末复习时参考。
各部分复习提要第一部分程序设计基础复习知识点:C++程序的基本结构基本数据类型常量、变量的定义与使用常用运算符的使用表达式的分类和使用简单的输入输出复习要求:1.理解:C++程序的基本组成。
2.应用:能够编写简单的程序,能完成简单数据类型数据输入、利用变量存放输入数据,利用常量存放固定数据,利用运算符进行简单的运算,并能够将结果输出(如书中2.6, 2.7题)。
3.应用:能进行比较复杂的表达式运算(如书中3.1,3.2,3.3题* )。
第二部分语句与操作流程复习知识点:语句的分类分支语句循环语句转移语句复习要求:1.理解:语句按功能分为:操作运算语句和流程控制语句,其中操作运算语句按复杂程度分为简单语句和复合语句。
2.应用:能够根据程序要求选择合适的流程控制语句(如书中4.2,4.4,4.5题)。
3.应用:能够用多种循环语句实现一种循环的程序要求(如书中4.1题)。
4.综合应用:综合运用各种语句完成比较复杂的程序逻辑(如书中4.9题)。
第三部分函数复习知识点:模块化程序设计函数的定义函数的定义与函数原型函数参数的类型与传递方式全局变量和局部变量函数调用机制递归函数函数重载函数的默认参数静态局部变量复习要求:1.理解:模块化程序设计与函数的关系。
2.理解:默认参数的含义与用法,能够在程序中正确使用默认参数。
3.理解:全局变量、局部变量、静态变量的含义,能够在程序中正确选择使用静态、局部和全局变量。
4.应用:将一些功能明确的代码封装在函数中(如书中5.1,5.2,5.3题)。
5.应用:利用递归函数来简化程序设计(如书中5.7题)。
面向对象程序设计复习纲要
2013面向对象程序设计复习纲要1、基本题型与范围1.1题型:基础概念解释和问答、判断、填空、阅读程序写结果、单选、编写程序。
2.2内容覆盖:面向对象基础概念和机制,封装、继承和多态(本部分内容为重点,含模板、运算符重载等)。
以面向对象课程为主。
2、课程基本内容一览2.1一些术语的不同提法基类——父类派生类——子类拷贝构造函数——复制构造函数2.2 类与对象面向对象程序设计特点:抽象、封装、继承、多态Public、protected、private成员的区别(访问权限不同、继承方式不同)构造函数、析构函数(析构函数既无参数也无返回值,故不能重载,即:一个类中不可能有多个析构函数)一个类,必须有构造函数、析构函数,即使不定义,系统将自动创建默认的函数注意构造函数和析构函数是由系统自动调用,特别注意,构造函数可能有多个,到底调用哪一个,由定义对象时或使用new 运算符时所给的参数确定如果程序未创建拷贝构造函数,则系统也将自动创建默认的拷贝构造函数。
简单的说:1、若未定义构造函数则系统将自动创建默认的无参构造函数2、若未定义拷贝构造函数,则系统将自动创建默认的拷贝构造函数,此时的拷贝构造函数仅实现浅拷贝;3、若未重载赋值运算,则当对象之间进行赋值时,系统将使用建默的=,此时的赋值仅实现浅拷贝;问题:1、什么是浅拷贝和深拷贝?2、什么时候需要自定义拷贝构造函数?(需要深拷贝:自己体会什么时候需要深拷贝)3、拷贝构造函数何时被调用?(以下示例中point为一个类)1)、当用类的一个对象初始化该类的另一个对象时。
例:int main(){ point A(1,2);point B(A);//用对象A初始化对象B,拷贝构造函数被调用.point C = A; //此处等价于C(A),别误以为调用了赋值运算=,}2 )、如果函数的形参是类的对象,调用函数时,进行形参和实参结合时。
例:void f(point p){}main(){ point A(1,2);f(A);//函数的形参为类的对象时,当调用函数时,拷贝构造函数被调用.}3)、如果函数的返回值是类的对象,函数执行完成返回调用者时。
面向对象程序设计-复习框架
C++复习要点
第1章关注IT学长淘宝店号530213
1、函数的重载
2、带默认参数的函数
3、其他:const常变量,引用、内联函数、作用域运算符、字符串变量。
动态分配及撤销内存关注IT学长淘宝店号530213
第2章
1、面向对象的概念
2、类与对象的定义及两者的关系
3、类的定义(格式)
4、对象的定义(对象,对象数组,对象引用,对象指针),对象的调用
5、对象的存储(数据成员及成员函数)
第3章
1、构造函数的作用及定义(种类:默认构造函数,普通构造函数,复制构造函数,转换构造函数)
2、析构函数
3、调用构造与析构函数的顺序
4、静态与友元作用及定义
静态:static –》共享
友元:friend →类外访问私有成员
第4章关注IT学长淘宝店号530213
1、运算符重载的方法operator+
2、重载的规则
3、重载方式:成员函数与友元函数
a+b 双目运算符→友元函数
i++ 单目运算符→成员函数
4、流插入、流提取运算符
第5章
1、继承与派生的声明方式
2、派生类成员的访问属性
3、派生类的构造函数、调用顺序
4、多重继承与多层继承、虚继承解决二义性
第6章
1、用虚函数实现多态性
2、纯虚函数与抽象类
第8章关注IT学长淘宝店号530213
1、异常处理的方法
2、嵌套异常处理分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013面向对象程序设计复习纲要1、基本题型与范围1.1题型:基础概念解释和问答、判断、填空、阅读程序写结果、单选、编写程序。
2.2内容覆盖:面向对象基础概念和机制,封装继承和多态(本部分内容为重点,含模板、运算符重载等)。
以面向对象课程为主。
2、课程基本内容一览2.1一些术语的不同提法基类——父类派生类——子类拷贝构造函数——复制构造函数2.2 类与对象面向对象程序设计特点:抽象、封装、继承、多态Public、protected、private成员的区别(访问权限不同、继承方式不同)构造函数、析构函数(析构函数既无参数也无返回值,故不能重载,即:一个类中不可能有多个析构函数)一个类,必须有构造函数、析构函数,即使不定义,系统将自动创建默认的函数注意构造函数和析构函数是由系统自动调用,特别注意,构造函数可能有多个,到底调用哪一个,由定义对象时或使用new 运算符时所给的参数确定如果程序未创建拷贝构造函数,则系统也将自动创建默认的拷贝构造函数。
问题:1、什么是浅拷贝和深拷贝?2、什么时候需要自定义拷贝构造函数?(需要深拷贝:自己体会什么时候需要深拷贝)3、拷贝构造函数何时被调用?1)、当用类的一个对象初始化该类的另一个对象时。
例:int main(){ point A(1,2);point B(A);//用对象A初始化对象B,拷贝构造函数被调用.}2 )、如果函数的形参是类的对象,调用函数时,进行形参和实参结合时。
例:void f(point p){}main(){ point A(1,2);f(A);//函数的形参为类的对象时,当调用函数时,拷贝构造函数被调用.}3)、如果函数的返回值是类的对象,函数执行完成返回调用者时。
例:point g(){ point A(1,2);return A;//函数的返回值是类的对象,返回函数值时,调用拷贝构造函数.}void main(){ point B;B = g();}4、拷贝构造函数与赋值运算符(=)有何区别?什么时候需要重载复制赋值运算符?//zijiBianDaiMaShiYan5、this指针2.3 C++程序结构静态数据成员、静态函数成员各自的特点友元函数、友元类,注:友元关系是单向的,是给予而不是索取常成员(参看文档)2.4两个最重要的运算符及两个最重要的运算1、2个运算符:* &2、New和delete 运算2.5 继承与派生Public、protected、private 三种继承方式下,父类的Public、protected成员访问控制变化如:受保护继承时,父类的公有成员在子类中具有受保护成员特征注意同名成员函数的不同处理机制,一个类中同名非虚成员函数属于重载关系,子类对父类的非虚成员函数进行重新定义的属于覆盖机制。
父类和子类之间具有泛化特化结构要点:1、子类、父类的构造函数、析构函数调用次序2、子类的构造函数定义时,若需要使用父类的带参构造函数,如何定义(特别是多继承时时)?3、同名隐藏、二义性问题及解决方法4、虚基类,什么时候使用虚基类?如何声明?作用是什么?(注意:在第一级继承时就要将共同基类设计为虚基类)2.6多态性多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。
多态的实现:函数重载、运算符重载、虚函数多态的类型:重载多态、强制多态(静态绑定)、包含多态(通过虚函数实现,动态绑定)、参数多态(与类模板关联)要求:能进行运算符的重载,理解并使用虚函数,纯虚函数,抽象类2.7函数模板和类模板能使用函数模板和类模板进行简单的程序设计2.8 异常处理2.9 FileStream3、模拟试题一、填空题1、当建立对象时,程序自动调用该类的构造函数;当撤销对象时,程序自动调用该类的析构。
2、当定义重载函数时,应在参数的数量和类型上有所不同。
3、类是自定义的类型,具有类类型的变量称作对象。
4、在一个类中,多个同名非虚成员函数之间构成重载关系。
5、拷贝构造函数通过对象性形参使用引用来初始化创建中的对象。
6、基类的公有成员在私有派生类中是__私有__成员,基类的保护成员在公有派生类中是____保护_成员。
7、带有纯虚函数的类称为抽象类,抽象类不能定义对象。
8、如果类的名称是MyClass则析构函数名为_~MyClass()_,一个类最多能有_1__个析构函数。
9、将关键字_static_写在函数体之前函数头之后,说明该函数是一个___静态函数__,可以防止函数改变数据成员的值。
10、多态的实现方式有:函数重载、运算符重载和虚函数;多态的类型有重载多态、强制多态、包含多态和参数多态。
11、在一个类中,多个同名非虚成员函数之间构成重载关系。
12、子类对父类的非虚成员函数进行重新定义的机制称为覆盖。
13、受保护继承时,父类的公有成员在子类中具有受保护成员特征。
二、单项选择题1、下列关于构造函数的描述中,错误的是( C )A、构造函数可以设置默认参数;B、构造函数在定义类对象时自动执行C、构造函数可以是内联函数;D、构造函数不可以重载2、下面有关重载函数的说法中正确的是(C )A、重载函数必须具有不同的返回值类型;B、重载函数形参个数必须不同;C、重载函数必须有不同的形参列表D、重载函数名可以不同3、下面描述中,错误的是(b )A、公有继承时基类中的public成员在派生类中仍是public的B、公有继承是基类中的private成员在派生类中仍是private的C、公有继承时基类中的protected成员在派生类中仍是protected的D、私有继承时基类中的public成员在派生类中是private的4、在下列程序划线处填入的正确语句是(C )class Base{ public:void fun(){cout<<"Base::fun"<<ENDL;}};class Derived:public Base{ void fun(){_____________ //显式调用基类的函数fun()cout<<"Derived::fun"<<ENDL;}};A、fun()B、Base.fun();C、Base::fun()D、 Base->fun();5、有如下程序:class BASE{private: char c;public:BASE(char n):c(n){}virtual ~BASE(){cout<<c;}};class DERIVED:public BASE{private: char c;public:DERIVED(char n):BASE(n+1),c(n){}~DERIVED(){cout<<c;}};int main(){ DERIVED(‘X’);return 0;}执行上面的程序将输出(B )A、XYB、YXC、XD、Y6、指C++中解决命名冲突的机制是:CA、虚基类B、虚函数C、函数重载D、名字空间7、在下列说法中,不正确的是( B )。
A、静态成员函数不能利用this指针B、只有非静态成员才可以使用this关键字,因为静态成员没有this指针C、析构函数不接受任何参数,也不带有任何类型的返回值D、虚机制在构造函数和析构函数中仍然可以很好地工作,以实现多态性8、在函数定义前加上关键字“inline”,表示该函数被定义为( B )A、重载函数B、内联函数C、成员函数D、普通函数9、下面的类说明中有(C )个语法错误class ss {int data=3;public:int ss(int x=0);~ss(int x );};A、1B、2C、3D、410、在C++语言中,为了使重载函数具有通用的函数体,应使用(C )A. 虚函数B. 纯虚函数C. 函数模板D. 友元函数11、下列各个成员函数中,纯虚函数是(D)A. void fun(int)=0B. virtual void fun(int)C. virtual void fun(int){}D. virtual void fun(int)=012、为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( A )A. publicB. protectedC. privateD. static13、不能作为函数重载判断依据的是( A )A. constB. 返回类型C. 参数个数D. 参数类型14、下列运算符中,( C )运算符在C++中不能重载(4 分)A. &&B. []C. ::D. new15、以下关于类和对象叙述正确的是( A )A. 只有通过具体的对象才能访问类的成员函数B. 一个类的成员函数可以任意被调用C. 对象是抽象的,而类是具体实现D. 类和对象间没有联系16、一个类的友元函数或友元类能够通过成员操作符访问该类的(D )A. 私有成员B. 保护成员C. 公有成员D. 所有成员17、若Myclass为一个类,则执行Myclass a[3],*p[2];语句时,自动调用该类构造函数(B )次A. 2B. 3C. 4D. 518、在( B )情况下宜采用inline定义内联函数A. 函数体含有循环语句B. 需要加快程序的执行速度C. 函数体含有递归语句D. 函数代码多,不常被调用19、如果类A被说明成类B的友元,则(D )A. 类A的成员即类B的成员B. 类B的成员即类A的成员C 类A的成员函数不得访问类B的成员. D. 类B不一定是类A的友元20、定义析构函数时,应注意( C )A. 其名与类名完全相同B. 返回类型是void类型C .无形参,也不可重载 D. 函数体中必须有delete语句21、以下有关继承的叙述正确的是(A)A.构造函数和析构函数都能被继承B.派生类是基类的组合C.派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员D.基类的公有成员一定能被派生类的对象访问22、类MyA的拷贝初始化构造函数是(C )A.MyA() B.MyA(MyA*)C.MyA(MyA&) D.MyA(MyA)23、以下关于抽象类的描述正确的是( D )A.不能说明指向抽象类对象的指针或引用B.可以说明抽象类对象C.抽象类的纯虚函数的实现可以由自身给出,也可以由派生类给出D.抽象类的纯虚函数的实现由派生类给出24、下列关于静态数据成员的描述中正确的是(A )A. 静态数据成员是类的所有对象所共有的B. 静态数据成员要在构造函数内初始化C. 类的每个对象有自己的静态数据成员D. 静态数据成员不能通过类的对象调用25、下列虚基类的说明中,正确的是(B)A. class virtual Y:public XB.class Y:virtual public XC. virtual class Y:public XD.class Y:publicX virtual三、判断题1、构造函数可以重载,析构函数也可以重载。