面向对象程序设计的重点是,面向对象程序设计的重点是()的设计

面向对象程序设计的重点是,面向对象程序设计的重点是()的设计

《面向对象程序设计及C++》复习要点

第一章

1、面向对象的三大特点:封装、继承、多态性

2、类和对象的基本概念及两者的相互关系

3、C程序开发的完整过程:编辑、编译、链接、执行

第二章

1、C输入输出控制方式需要使用包含头文件、cin cout

2、优于定义const符号常数的方法和宏观定义

3、const和指针变量三种组合方式,深入理解表2.1的内容。 课后课题5、无论const和指针如何组合,用cout访问是肯定的。 因为它不参与任何内容的修改。

4、理解命名空间的定义和使用

5、扩大全局变量的可视范围,使全局变量真正全球化,了解教材范例2.6中各sum的差异。 主教材课后习题解读题第三题

6、定义函数时,格式参数有缺省值的方式:按从右到左的顺序; 实际参与的顺序:从左到右的顺序。 调用时参数使用原则:如果存在相应的实际参数,则使用从实际参数传递的值;如果未提供相应的实际参数,则使用格式参数的默认值。 教材范例2.7、理解课后习题选择的第2题

7、内联函数的定义是在第一个或原型声明之前添加关键字inline。 内联函数的特点:功能简单,无循环结构

8、函数重载:要求、格式参数表内必须有区别。 函数名称必须相同。 函数的返回类型不作为区分标准。 理解案例2.9、表2.2、课后习题选第三题; 读课题4

调用重载函数时,首先要严格匹配参数,包括参数个数和相应的参数类型。 实参类型与形式参数类型完全一致时优先一致,只有找不到类型完全一致时才启动类型自动转换机制。

9、引用概念、引用及其代表变量相同,占用相同的内存空间。 引用最有意义的用法是用作形式参数。 示例2.11需要深入理解。 格式参数都是引用。 将一个作为引用参数,另一个作为值格式参数会产生什么效果? 引用前面加const的意思和用法,理解例2.12。 作为返回值引用也是一个新的知识点,用于运算符加载中的输入流输出流运算符的加载中。 理解案例2.13、课后习题导读5、6题

10、C中使用指针进行动态存储器空间管理的方法,要掌握申请单一空间的方法、申请单一空间同时初始化的方法、申请数组空间的方法以及对应的释放空间的方法。 课后习题4

11、了解try catch throw机制异常处理方式后,填空题第2题

第三章

1、类的定义,类中成员的访问属性和默认专用属性,以及类内和类外成员函数是如何定义的。 特别是在类外定义时,请注意在成员函数名称前加上类名:

2、对象定义。 定义对象时,对象名之后是否需要实际的参数,这取决于在定义类时是否有提供参数的构造函数,如何通过对象名.公共成员函数名,以这种形式将公共成员函数转换为

3、类中构造函数的定义、构造函数的特征课后习题第3题、例3.11、3.12、3.15

4、复印构造函数的定义和基本方法,核心是在定义复印构造函数时,其形式参数为本类对象引用,一般经常被引用,理解深拷贝和浅拷贝,系统默认浅拷贝的复印构造函数如果要用一个对象初始化另一个同类对象,将它作为实参传递给值格式参数,或者返回值是类对象,则调用此函数

5、析构函数的定义、析构函数的特点

6、this指针是驻留在类中的典型成员函数。 this是指向当前对象的指针。 当通过成员函数访问数据成员时,数据成员的全名是this-数据成员。 在重载运算符时,可以偶尔使用在成员函数中用*this表示当前对象

7、对象数组、对象指针、对象引用的定义和使用,以及将对象、对象指针、对象引用作为格式参数时的用法、教材示例3.15

8、友元函数声明、定义及使用,教材3.5.1内容重点理解

9、课后习题重点:单选题3-7、导读试题所有、编程试题1

10、实验1-1

第四章

1、静态数据成员声明与初始化,了解相应静态函数的意义,课后习题阅读1、2题

2、常规数据成员的定义和初始化方法,参考示例4.4

3 .普通成员函数是指在该函数中只访问数据成员,不改变数据成员。 普通对象只能调用普通成员函数,普通成员函数也可以调用普通对象

3、常对象的定义。 普通对象只能调用普通成员函数。 教材范例4.5、理解课后习题第三题

第五章

1、类继承和派生的概念、基类和派生类根据派生类所拥有的基类数量分为单继承和多重继承

2、类的组合是当一个类中包含其他类的对象并且对象成员的构造函数需要参数时,通过构造函数的初始化列表来传递的。 教材示例5.2

2、在类的继承关系中,基类成员在派生类中出现的属性是3行3列的表。 私有、受保护和公共三行三列表。 基类的private成员无论如何继承到派生类中都不能直接访问派生类的函数; 基类的公共成员被公共继承后,在派生类中仍然是公共属性。 这些成员可以直接通过点运算符被派生类对象访问,而来自其馀基类的成员只能通过派生类的成员函数访问。

3、定义派生类对象时,调用构造函数的顺序:基类构造函数、派生类构造函数; 析构函数的调用顺序相反。 课后习题要看一两个题目。

4、如果基类有构造函数,需要提供参数,则派生类必须提供构造函数,并负责调用基类构造函数。 教材例5.7、例5.8

5、同名冲突与解决方案,多层多重继承时,定义虚函数解决冲突。 教材范例5.12、教材P147页下这种情况下,当最底层的类定义对象时,建构子调用顺序的描述需要掌握教材后习题的阅读理解第5题。

6、赋值兼容四种情况,总原则:赋值号左边可以是基类对象,右边可以是公有派生类对象,反之,理解教材范例5.13

7、耐心阅读教材中的例子5.14,通过这个例子学习如何根据继承关系定义上下层的班级。 然后提取其中的Student类和Graduate这两个类,定义构造函数、析构函数,定义对应的成员函数,在派生类中如何添加数据或者成员函数,如何正确定义构造函数

第六章

1、两种多态性的概念及相应的实现手段:静态多态性、动态多态性

2、运算符重载,牢记哪些五种运算符不可重载,运算符重载应满足的原则

3、用成员函数过载和友元函数过载的不同方法,注意参数的差异。 重点例:友元重载:例6.4; 成员重载:示例6.3;

4、输入/输出流过载只能作为友元函数过载。 因为这两种运算符的第一个运算对象是流对象,而不是此类的类对象。 另外,返回值的类型都是ostream和istream、教材例6.7和例8.6这样的参照。

4、虚函数的定义要求基类和公开派生类中函数前有virtual,且函数原型完全相同,这样才能实现动态多态。 动态多态性必须通过基类指针或引用来实现。

5、关于虚函数的选择有几个特殊要求。 例如,静态成员函数、内联函数和构造函数不能声明为虚函数,但是析构函数可以是虚函数,并且建议声明为虚函数; 虚函数本身是类的成员函数之一,不是友元函数

6、纯虚函数与抽象类。 如果某个类有纯虚函数,则该类是抽象类。 必须了解纯函数的声明方式,不能定义开头为virtual、结尾为=0的抽象类来定义对象,但可以定义指针和引用来实现动态多态性。 教材示例6.13需要熟练和理解。

第七章

1、函数模板的定义和调用。 注意,未知类型必须在template中进行说明。 调用时自动通过实参的类型特定于未知类型得到模板函数进行调用。 教材范例7.1、了解主教材习题电台1、2、3题、导读1题

第八章

1、c中文件的分类

2、文件操作的步骤、打开文件的两种方法是利用open成员函数或直接定义流对象来指定文件和打开方式。 ios:in方式用于读取文件。 这意味着将文件的内容读取到内存中。 ios:out用于写入文件,将内存内容写入磁盘文件

3、掌握运算符和文件操作方法,例8.7

3、要掌握get、put函数的用法,需要掌握例8.8,并在此基础上根据要求进行一定的变换