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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《面向对象程序设计》课程期末复习资料《面向对象程序设计》课程讲稿章节目录:第一章、C++基础(16个知识点)01计算机求解问题的过程02编程的步骤03程序设计方法04程序设计基本概念05C++程序集成开发环境简介06C++程序实例07C++源程序的组成08C++源程序的组成元素09C++与C的主要差异–符号常量和标准输入输出流10C++与C的主要差异–内联函数11C++与C的主要差异–带默认形参值的函数12C++与C的主要差异–函数重载13C++与C的主要差异–动态内存分配和释放14C++与C的主要差异–动态内存分配和释放程序实例15C++与C的主要差异–引用和返回引用的函数16C++与C的主要差异–函数的引用调用第二章、面向对象方法(27个知识点)01面向对象方法基本概念–对象、类、实例和消息02面向对象方法基本概念–封装、继承和多态03类的定义04构造函数05对象的定义和访问06对象的定义和访问程序实例07类成员的访问控制08类成员的访问控制程序实例09析构函数10拷贝构造函数11类声明和类实现的分离12类的常量成员13类的静态数据成员14类的静态成员函数15this指针16类的友元17类的对象成员–基本概念18类的对象成员–对象成员的声明、初始化和访问19自定义类的运算符重载概述20类成员函数形式的运算符重载21类友元形式的运算符重载22赋值运算符和下标运算符重载程序实例23类设计实例24面向对象方法程序实例–类和对象的基本定义、构造函数和析构函数25面向对象方法程序实例–静态成员和多文件结构26面向对象方法程序实例–友元和运算符重载27面向对象方法程序实例–对象成员第三章、继承与多态(17个知识点)01继承概述02派生类定义03派生类构造函数和析构函数04派生类构造函数和析构函数程序实例05函数重定义和派生类的继承方式06多重继承下的派生类定义07多重继承中的二义性问题08虚拟继承和虚基类09类型兼容10多态性的概念和实现原理11虚函数12虚析构函数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附1.1.3(考核知识点解释)在调用函数时,需要针对函数中的每一个形参给出对应的实参。C++中允许在函数定义或函数声明时给出默认的形参值。在调用函数时,对于有默认值的形参,如果没有给出相应的实参,则函数会自动使用默认形参值;如果给出相应的实参,则函数会优先使用传入的实参值。默认形参值可以在两个位置指定:如果有函数声明,则应在函数声明处指定;否则,直接在函数定义中指定。默认形参值必须严格按照从右至左的顺序进行指定。4、有关重载函数的描述正确的是(C)。A、函数名相同的函数就是重载函数B、函数名相同但返回值类型不同的函数就是重载函数C、函数名相同但参数个数或类型不同的函数就是重载函数D、函数功能相同的函数就是重载函数★考核知识点:C++与C的主要差异–函数重载参见讲稿章节:1-12附1.1.4(考核知识点解释)C++允许不同的函数具有相同的函数名,这就是函数重载。当调用一个函数时,除了要写出函数名,还要根据函数的形参列表传递实参值。对于函数名相同的多个函数,要在调用时能够区分开到底要调用哪个函数,只能根据传递实参在数量或类型上的不同来进行判断。也就是说,函数名相同的函数形参列表不能完全一样,否则会因无法区分而报错。5、假设堆内存分配均成功,则下面程序段完全正确的是(A)。A、int*p=newint(3);cout*p;deletep;B、int*p=newint[5]={1,2,3,4,5};for(inti=0;i5;i++)coutp[i];delete[]p;C、int*p=newint[5];for(inti=0;i5;i++,p++){*p=i;cout*p;}delete[]p;D、以上程序段均正确★考核知识点:C++与C的主要差异–动态内存分配和释放参见讲稿章节:1-13附1.1.5(考核知识点解释)在C++中,使用new和delete这两个关键字完成堆内存分配和释放的操作。堆内存分配new的用法为:new数据类型[表达式];其中,表达式可以是常量,也可以是变量,其作用与声明数组时[]里的表达式一样,用于指定元素数目。如果只申请一个元素的空间,那么[表达式]部分可以不写:new数据类型;对于只申请一个元素空间的情况,在分配内存的同时还可以进行内存初始化工作:new数据类型(表达式);其中,表达式确定了分配的内存中初始存储的数据。堆内存释放delete的用法为:delete[]p;如果p所指向的堆内存只包含一个元素,那么还可以将[]省掉,即:deletep;必须使用指针保存分配的堆内存首地址,这是由于delete须根据首地址进行堆内存释放,如果不知道首地址则无法释放内存,从而造成内存泄漏。6、变量的引用,其含义是指该变量的(C)。A、值B、类型C、别名D、地址★考核知识点:C++与C的主要差异–引用和返回引用的函数参见讲稿章节:1-15附1.1.6(考核知识点解释)引用就是别名,变量的引用就是变量的别名,对引用的操作就是对所引用变量的操作。7、已知“inta=10,b=8;int&r=a;r=b;couta,b,r;”,则输出为(D)。A、10,8,10B、10,8,8C、8,8,10D、8,8,8★考核知识点:C++与C的主要差异–引用和返回引用的函数参见讲稿章节:1-15附1.1.7(考核知识点解释)引用就是一个别名,声明引用不会再为其分配内存空间,而是与所引用对象占据同一片内存空间。因此,对引用的操作与对所有引用对象的操作效果完全一样。8、已知“inta=10,*p;int*&r=p;r=&a;*p=20;couta;”,则输出为(B)。A、10B、20C、不确定值D、程序有错误★考核知识点:C++与C的主要差异–引用和返回引用的函数参见讲稿章节:1-15附1.1.8(考核知识点解释)引用就是一个别名,声明引用不会再为其分配内存空间,而是与所引用对象占据同一片内存空间。因此,对引用的操作与对所有引用对象的操作效果完全一样。可以为指针变量声明引用,其声明形式为:数据类型*&引用名=指针变量名;9、下列关于类和对象的叙述中,错误的是(A)。A、一个类只能有一个对象B、对象是类的具体实例C、类是某一类对象的抽象D、类和对象的关系是一种数据类型与变量的关系★考核知识点:面向对象方法基本概念–对象、类、实例和消息参见讲稿章节:2-01附1.1.9(考核知识点解释)类是现实世界中客观事物的抽象,即将具有相似静态属性和动态行为的对象集合归纳为一个类。类是用户自定义的数据类型,与基本数据类型一样,需要声明类数据类型的变量,即对象,通过对一个个的实际对象实施不同的操作,来解决问题。声明对象的过程叫做类的实例化。10、有如下类声明:classSample{intx;};则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=newStudent;时自动调用无参构造函数创建动态对象,在deleltep;时自动调用析构函数释放动态对象D、构造函数和析构函数都可以成为虚函数★考核知识点:构造函数、析构函数参见讲稿章节:2-04,2-09附1.1.11(考核知识点解释)在C++中,对象的初始化工作是由构造函数来完成的。构造函数是一种特殊的成员函数,C++规定可以在类内声明一个或多个构造函数,以满足对象多样性的初始化需要。构造函数具有如下特征:①构造函数名与类名相同。②构造函数无任何函数返回类型说明。③一个新的对象被创建时(通过对象声明语句或使用new运算符在堆区创建动态对象),属于该对象的构造函数被编译系统自动调用,完成该对象数据成员的初始化工作。④如果在类声明中没有给出构造函数,系统会自动给出一个默认的无参构造函数:类名(){}⑤如果在类中声明了多个构造函数,这就是构造函数的重载。要求这些构造函数要有不同的参数表,系统自动调用构造函数时按照函数重载的规则选择其中的一个构造函数。在对象的生存期结束时,有时也需要执行一些操作。这些工作就可以放在析构函数中。析构函数是一个特殊的由用户定义的公有成员函数,析构函数具有如下特征:①析构函数名为:~类名,如~IntArray。②构造函数无任何函数返回类型说明。③析构函数无参数,所以不能被重载。④如果在类声明中没有给出析构函数,系统会自动给出一个默认的析构函数:~类名(){}⑤当对象的生命周期结束及用delete释放动态对象时,系统自动调用析构函数完成对象撤销前的处理。12、在类的定义中,用于对类的数据成员进行初始化并执行其他内部管理操作的函数是(C)。A、友元函数B、虚函数C、构造函数D、析构函数★考核知识点:构造函数参见讲稿章节:2-04附1.1.12(考核知识点解释)一个新的对象被创建时(通过对象声明语句或使用new运算符在堆区创建动态对象),属于该对象的构造函数被编译系统自动调用,完成该对象数

1 / 69
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功