《c++期末 考试复习资料》由会员分享,可在线阅读,更多相关《c++期末 考试复习资料(15页珍藏版)》请在金锄头文库上搜索。
1、2014年期末C+复习资料计科134班出品使用前必读:1. 本资料仅供参考,复习时必须与教材同时使用。2. 复习时应当对照本资料上的内容复习教材上的难点和例题,切不可先看教材再看本资料或者先看本资料再看教材。3. 本资料中内容如有与任课教师所讲内容冲突的,以任课教师为主。4. 计科134出品,必属精品。转载请保留此行。第一章本章为C+的一个初步介绍,几乎所有内容在后面的章节中都有详细的讲解,故考试时很少涉及第一章内容。同学们在复习本章时只需掌握基本概念即可,注意下面几点:1.3.4 函数的重载,掌握概念(凡本文涉及的知识点都要求掌握概念,下面不在特殊说明),例1.6 例1.7 。要注意的是:重
2、载函数与原函数相比,要么参数个数发生改变,要么参数类型发生改变。例如:void function( int x , int y )(原函数)与void function( int x , int y , int z )或void function( int x , float y )是重载函数。(函数重载在我们目前学习的c+中最大体现就在于构造函数的重载。)1.3.6 有默认参数的函数 重点 第三章中“带默认参数的构造函数”是必考内容,这里要牢牢掌握什么是默认参数以及默认参数的用法。注意:默认参数一定在参数列表的最右端如:void f1(flaot a,int c,int b=0)1.3.7
3、变量的引用 主要看“将引用作为函数参数” 例1.12 “对引用的进一步说明”应做了解。引用的作用就是替代指针,并且不会产生地址方面的问题。1.3.9 作用域运算符 掌握“:”运算符的意义,该运算符在后面大量出现。例如void Student : display( )表示display函数是Student类的成员函数,其类型为void。此处注意语句顺序为:类型、类名、作用域运算符:、函数名/变量名1.3.10 字符串变量 重点 熟练掌握本节所有内容。在程序中使用字符串变量时注意添加头文件#include。使用时将string型变量当做一般变量即可,例如:定义整型变量a写作int a ,定义字符串
4、变量a就应写作string a ,但是不同于其他类型,string不会变蓝。 例1.17 1.3.11 动态分配/撤销内存运算符 new和delete 考点 平常最考察的就是构造函数用指针做形参时需要开辟内存,否则会因为不明了指针指向的地址块大小而报错,如在我们做过的TV类中:TV(char *m,int s,int u)model=new charstrlen(m)+1;strcpy(model,m);注意:只要有new开辟空间一定要有delete删除空间,即有多少个new就要有多少个delete。第二章本章主要介绍C+中的类和对象,两者是C+的灵魂,应牢牢掌握2.2.1 类和对象的关系 基
5、础 对象是类的衍生,类的具体,类就像模具,对象就像是模具产出的产品,只不过每个产品编码不同。2.2.2 声明类类型 掌握P45下方的程序段。习惯上在定义类时先写public成员再写protected成员再写private成员(并非规定,习惯而已)。2.2.3 定义对象的方法 重点 掌握第一种方法,了解第二种方法,无视第三种方法。(手里没有教材的话你肯定不知道我在说什么-_-!)2.3 类的成员函数 重点 掌握50页上方的程序段,熟练运用void Student : display( )这种定义方法(又称类外定义)。注意顺序:类型、类名、作用于运算符、函数名。2.3.3和2.3.4不看。2.4
6、对象成员的引用 重点 其中三个方法都要熟练运用 55页上方“在类外只能.是错误的”是很多人易犯的错误。2.4.2的内容在今后的学习中很常见,即使有了引用,指针依然非常具有存在感(指针是很喜闻乐见的)2.5 类和对象的简单应用举例 重点 本节只看两个例题:60页例2.3和61页例2.4 。 务必掌握每一个细节,尤其是例2.4。2.6 类的封装性和信息隐蔽 无视本章课后习题要求会做1、2、3题第三章(重点)本章讨论构造函数等C+中的重要工具,更是考试中最喜闻乐见的章节。本章知识点多且复杂,对于C+的初学者来说是有一定难度的。全书本章的难度个人认为排行第三,复习时应多在本章分配时间。同学们无论在复习
7、、考试还是自己编写程序是要注意,自己设定类名、函数名、变量名等名称时,要使用含义明确、简洁明了的词汇。例如学生类就是Student(拼音亦可),这样可以大大增强程序的可读性。考试遇到程序阅读题时,如果题目中的名称太长会影响审题,可以自己改成a、b、c等习惯的名字,防止出错。3.1 构造函数 重点中的重点,不仅是本章,全书中凡是提到构造函数的都是重点 首先无视3.1.1 。掌握例3.1,注意:1.构造函数名必须与类名相同。2.构造函数用于对数据成员进行初始化。3.构造函数没有类型也没有返回值。4.构造函数可以有参数也可以没有参数。根据题目要求写构造函数是填空和大题的必考知识点。掌握71页下方在类
8、外定义构造函数的方法。例3.2 。3.1.4内容虽少但是非常重要Box:Box( int h, int w, int len):height(h),width(w),length(len) 等效于Box:Box( int h, int w, int len) height=h; width=w; length=len; 前者被称为参数初始化表,用参数初始化表初始化数据成员必考。例3.3 。关于构造函数的重载只需按照第一章函数重载的概念和注意事项即可。注意区分以下几种构造函数:Box:Box( int h, int w, int len) height=h; width=w; length=le
9、n; 带参数的构造函数Box:Box(int h=0, int w=0, int len=0) height=h; width=w; length=len; 带默认参数的构造函数Box:Box( ) height=0; width=0; length=0; 默认构造函数可以发现带默认参数的构造函数兼顾了其他两种构造函数的功能,在实际应用中这类构造函数应用得最多。注意带默认参数的构造函数也属于默认构造函数,这样的构造函数在一个类中只能有一个。例3.4 。3.2 析构函数 如果要考析构函数必考析构函数的执行顺序。在了解析构函数之前应先了解什么叫对象的释放。释放就是清空该对象所占的内存空间,可以简单
10、地理解为删除当对象被释放时,会执行析构函数。牢记78页中部执行析构函数的4个条件。同学们要注意一个大误区,析构函数不是释放对象的函数,无论程序是否有析构函数,对象都要释放。析构函数的作用是在对象释放时做一些额外的工作,例如:cout“我被释放啦!”endl;在答程序设计题时,如题目没有要求写析构函数就不要写,万不可盲目跟风。3.3 调用构造函数和析构函数的顺序 可能会出一个选择题,如果复习压力较大可以无视。3.4 对象数组 此物是结构体数组的升级版,用法与结构体数组基本相同。例3.63.5 对象指针 如果同学们能抽出半小时时间回顾一下上学期程序设计基础中关于指针的内容,复习起来会容易得多。掌握
11、3.5.1和3.5.2的所有相关概念,无视3.5.33.6 共用数据保护 本节的知识点难度不高但极易混淆。应先掌握概念部分,再牢记90页至96页的表3.1 表3.2 表3.3 。注意区分const的位置不同带来的变化,例如:const Time *p是指向常对象的指针p,Time const *p 是指向对象的常指针p。这些内容靠死记硬背很难记住,最佳的方法是上机实验。上机实验是学习程序设计语言的万能钥匙,可以解决学习中的一切难题。3.6.5 对象的常引用请结合前面对象的引用来复习,例3.8 。3.7 对象的动态建立与释放 无视(但是本节知识在大二上学期学习链表时是重点)3.8 对象的赋值与复
12、制 例3.9 。本节又向我们介绍了一种新的构造函数拷贝构造函数。重点掌握99页下方的概念和程序段,拷贝构造函数是常考点(多出现在填空题)3.9 静态成员 掌握一下静态成员的作用即可。注意一点:静态成员的初始化只能在类外进行。3.10 友元 友元函数在运算符重载(第四章)中有重要应用。本节重点掌握友元的概念、作用和用法。完全掌握例3.12 例3.13 。注意定义友元成员函数之前要先声明互为友元的两个类。3.11 类模板 无视(但是本节知识在大二上学期很常用)本章习题要求会做2、3、5、6、7、8、10第四章(非重点)本章节考的内容很少,但是知识点层次复杂难懂,以考试为目标的同学还是要加以理解。弄
13、清内部逻辑。4.1 什么是运算符重载 例4.1 注意本例中的complex_add函数,该函数即重载函数的原型。它有一个形参,函数体中的c.real=real+c2.real语句中的real实际上是c1.real。原因为该函数是成员函数,主函数中有调用语句plex_add( )。若该函数是友元函数,它的形参应写成(Complex& c1 , Complex& c2),c.real=real+c2.real语句也应改成c.real=c1.real+c2.real。这一点非常重要,它体现了将友元函数作为重载函数的特点,即友元函数做重载函数重载双目运算符时运算符两侧的变量可以交换位置。如果重载“+”
14、运算符用于复数的加运算是,如果想满足加法分配率,就要使用友元函数。4.2 运算符重载的方法 掌握例4.2熟记函数类型+operator+运算符+(形参表列)的模式。掌握例4.2后应具备独立编写对复数减法、乘法和除法的重载的程序的能力。4.3 重载运算符的规则 记住125页关于重载运算符的几个规则,记住不能重载的5个运算符。4.4 运算符重载函数作为类成员函数和友元函数 本节详细介绍了4.1中所说的友元函数的特点的问题。掌握例4.3以及书上对例4.3的分析4.5和4.6可以无视4.7 重载流插入和流提取运算符 本节只要求同学们认识还有这样一种重载函数即可,如果在程序阅读题中遇到要能理解它的作用。
15、对于想把专业课学好的同学应先掌握第7章的内容在来看本节内容。4.8 不同类型数据间的转换 4.8.1无视。4.8.2和4.8.3在复习时合为一体,这两节之间的关系极其紧密。这里我们又认识了一种新的构造函数转换构造函数。务必掌握它的概念和用法。例4.9 例4.10 。本章习题要求会做2、3、5、6第五章(重点,必出大题)第五章和第六章荣幸地并列成为本书最重要,最困难,最变态的章节,同时也是考试中占据大分值的章节。考试中无论是小题还是大题均能看到这两章的身影。所以,对这两章的掌握是及格和高分的关键。只希望及格就好的同学应当避难就易,先巩固自己会的,再争取拿下一些比较难的,实在看不懂的应当放弃。考试时重心放在考查基本概念的题目,大题想到什么写什么,切忌少写或不写;想拿奖学金的同学要把本资料的每一个难点和例题都掌握;想把专业课学好的同学最为简单暴力,请无视本资料,直接把全书融会贯通即可。5.1 继承与派生的概念 纯概念章节,对本章内容理解得比较好的同学可无视;理解得不太好的需死记。5.2 派生的声明方式 注意:若想让B类成为A类的派生类,应在声明B类时添加class B public(也可以是其他继承方式)A。同时A类必须已经存在。即在声明派生类时指定它的基类。5.3 派生类的构成 又是纯概念章节。注意:虽然派生类不能访问基类的私有成员,但是基类的所有成员都通过继承给了它的派生类。之所