面向对象程序设计总复习资料.doc
《面向对象程序设计总复习资料.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计总复习资料.doc(49页珍藏版)》请在咨信网上搜索。
1、面向对象程序设计总复习( _夏)复习之一、 对照书本(或上课课件)上, 搞懂有关概念【第0-1章】1. 面向对象程序设计是不同于传统程序设计的一种新的程序设计范型。它对降低软件的复杂性,改进其重用性和维护性, 提高软件的生产效率,有着十分重要的意义。因此面向对象的程序设计被认为是程序设计方法学的一场实质性的革命(在导学中)。2. 面向对象( O-O) 程序设计是一种新的程序设计范型。这种范型的主要特征是: 程序=对象+消息面向对象程序的主要结构特点是: 第一, 程序一般由类的定义和类的使用两部分组成; 第二, 程序中的一切操作都是经过向对象发送消息来实现的, 对象接收到后, 启动有关方法完成相
2、应操作。3. 现实世界中, 对象一般能够表示为: 属性+行为现实世界中的对象, 具有以下特性: (1) 每一个必须有一个名字以区别于其它对象; (2) 用属性来描述对象的某些特征; (3) 有一组操作, 每组操作决定对象的一种行为; (4) 对象的行为能够分为两类: 一类是作用于自身的行为, 另一类是作用于其它对象的行为。4. 在现实世界中, 类是一组具有相同属性和行为的对象的抽象。 类与对象的关系是抽象和具体的关系。 在C+面向对象的程序设计中, 把类中的属性称为数据( 数据成员) , 类中的操作是用函数( 函数成员) 来实现的。5. 面向对象程序设计的基本特征: 抽象性、 封装性、 继承性
3、和多态性(1). 抽象是经过特定的实例( 对象) 抽取共同性质后形成概念的过程。(2). 在面向对象程序设计中, 封装是指把数据和实现操作的代码集中起来放在对象内部, 并尽可能隐蔽对象的内部细节。(3). 继承机制允许派生类继承基类的数据和操作(即数据成员和成员函数), 也就是说, 允许派生类使用基类的数据和操作。同时派生类还能够增加新的操作和数据。从继承源上分, 继承分为单继承和多继承。(4). 面向对象系统的多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。如能够有同名函数【第2章】6. 简单的C+程序例2.1 计算两个整数之和sum.cpp这两行也可用一行代替: #includ
4、e #include /系统头文件using namespace std;int main( ) /主函数 int x , y, sum; / 定义三个整型变量 cout输入二个数:x; /从键盘输入变量x的值 ciny; /从键盘输入变量y的值 sum=x+y; cout”x+y=sum”表示向右老: printf新: cout是标准输出流, 在程序中用于代表标准输出设备, 即屏幕。运算符”表示向左使用cin或cout进行I/O操作时, 在程序头中头文件#include 7. 函数原型( 函数声明) (重点)返回值类型 函数名( 参数表) ; 例2.7int add(int a, int b
5、);int add(int, int);使用在前, 定义在后, 要先声明。若定义在前, 使用在后, 就可不必声明。8. 函数重载: C+中, 只要函数的參数的类型不同, 或者參数个数不同, 或者二兼有之, 几个函数能够用相同的函数名。称为函数重载9C语言用函数malloc()和free()动态分配内存和释放动态分配的内存。C+使用运算符new和delete能更好、 更简单地进行内存的分配和释放。10. 引用(重点)引用可为变量起别名, 它主要用作函数参数以及函数的返回类型。引用有三种: ( 1) 有变量的引用、 ( 2) 参数引用和( 3) 返回值引用。111、 & 取地址运算符 取西瓜皮 2
6、、 * 指针运算符( 间接访问运算符) 挖西瓜馕【第3章】12. C+中说明( 类的定义) 类的一般形式为clsaa 类名 private: (可省略) 私有段数据成员和成员函数 protected: 保护段数据成员和成员函数 public: 公有段数据成员和成员函数 ;成员函数的定义方式: 第一种方式是在类定义中只给出成员函数的原形, 而成员函数体在类的外部定义。第二种方式是将成员函数定义在类的内部, 即定义为内置函数。 (1) 隐式定义 (2) 显式定义13类对象中成员的引用( 使用、 访问都是同一个意思) 不论是数据成员, 还是成员函数, 只要是公有的, 就能够被外部函数直接引用, 引用
7、的一般格式是: 对象名. 数据成员名 和 对象名. 成员函数名( 实参表) 外部函数不能引用对象的私有成员总之: 类成员的访问属性: 类的公有成员不但能够被类中成员函数访问, 还能够在类的外部经过类的对象进行访问。类的私有成员只能被类中成员函数访问, 不能在类的外部经过类的对象进行访问。14. 构造函数的特点: ( 1) 构造函数的名字必须与类名相同, 否则编译程序将把它当作一般的成员函数来处理。( 2) 构造函数没有返回值, 在声明和定义构造函数时, 是不能说明它的类型的的, 甚至说明为void类型也不行。( 3) 构造函数也是成员函数, 与普通的成员函数一样, 构造函数的函数体可写在类体内
8、, 也可写在类体外。( 4) 一般不提倡在构造函数中加入与初始化无关的内容( 5) 构造函数一般声明为公有成员。它不需要用户来调用, 而是在建立对象时自动执行的。( 6) 在实际应用中, 一般需要给每个类定义构造函数。如果没有给类定义构造函数, 则编译系统自动地生成一个缺省的构造函数。 complex:complex( ) /不能带任何参数。( 7) 定义构造函数时, 也能够是不带参数的。15. C+允许重载构造函数, 这些构造函数之间名字相同, 而以它们所带参数的个类或类型的不同而区分。带默认参数的构造函数。16对象的赋值和拷贝构造函数, 其作用是, 在建立新对象时, 使用一个已经存在的对象
9、去初始化这个新对象。piont p2(p1);17. 析构函数也是特殊成员函数, 用于释放对象。( 1) 析构函数与构造函数名字相同, 但它前面必须加一个波浪号( ) 。( 2) 析构函数没有参数, 也没有返回值, 而且不能重载, 因此在一个类中只能有一个析构函数。( 3) 当撤消对象时, 编译系统会自动地调用析构函数。18能够用类定义对象数组: 类名 数组名元素个数; 19当需要时, 能够用类定义对象指针。对象指针就是用于存放对象地址的变量 类名 *对象指针名;20. 类的封装性, 使类只能经过成员函数来访问私有成员。这是好事但也有一定的限制太死的感觉。能否开个小孔口, 必要时作个破例, 使
10、外界函数、 别的类的个别成员函数、 甚致别的类的所有成员函数可访问某个类的私有成员。这个方法称为友元。21. 友元包括友元函数和友元类(1) 友元函数分为: 非成员函数作友元和别的类的成员函数作友元(2) 友元类: 在类定义时, 在类内说明一个类(该类前面已定义), 前加上 friend表示该整个的一个类是本类的友元类。友元类的所有成员函数能够访问它自己类私有成员又可本类的私有成员。【第4章】22. 派生类的定义基类: class 基类名 类的内容;声明派生类: class 派生类名 : 继承方式 基类名 /派生类新增的数据成员和函数成员;继承方式可为公有继承(用public)、 私有继承(用
11、private或缺省)和保护继承(用protected)23. 基类成员在派生类中的访问属性(重点)基类中的成员在公有派生类中的访问属性在私有派生类中的访问属性在保护派生类中的访问属性私有成员不可直接访问不可直接访问不可直接访问公有成员公有私有保护保护成员保护私有保护24. 派生类对基类成员的访问规则(重点)(1) 私有继承的访问规则基类中的成员私有成员公有成员保护成员访问方式内部访问对象访问不可访问不可访问可访问不可访问可访问不可访问(2) 公有继承的访问规则基类中的成员私有成员公有成员保护成员访问方式内部访问对象访问不可访问不可访问可访问可访问可访问不可访问(3) 保护继承的访问规则基类中
12、的成员私有成员公有成员保护成员访问方式内部访问对象访问不可访问不可访问可访问不可访问可访问不可访问25. 派生类的构造函数和析构函数(1) 派生类的构造函数和析构函数执行顺序无论何中派生, 当创立派生类对象时, 首先执行基类的构造函数, 随后再执行派生类的构造函数; 当撤消派生类对象时, 则先执行派生类的析构函数, 随后再执行基类的析构函数。(2). 派生类的构造函数和析构函数的构造规则简单的派生类的构造函数一般格式为: 派生类名(参数总表):基类名(参数表) 派生类新增成员的初始化语句 其中基类构造函数参数, 来源于派生类的构造函数的参数总表, 也能够用常数值。26. 从多个类, 派生出一个
13、类, 也即一个类从多个基类继承称为多重继承。多重继承的声明格式如下: class 派生类名: 继承方式1 基类名1, . ,继承方式n 基类名n 派生类新增的数据成员和成员函数 ;派生类继承了基类1 到 基类n的所有数据成员和函数成员, 其访问属性规则与单继承情况一样, 多继承可看成单一继承的扩展。27. 如果一个派生类有多个直接基类, 而这些直接基类又有一个相同的基类, 则在最低层的派生类中会保留这个间接的共同基类数据成员的多份同名成员。在访问这些同名成员时会产生二义性, 才考虑虚基类, 虚基类在派生类中声明的形式: class 派生类名: virtual 继承方式 基类名 / .;经过这样
14、的声明后, 当基类经过多条派生路径被一个派生类继承时, 该派生类只继承该基类一次, 也就是说, 基类成员无”副本”【第5章】28. 编译时的多态性与运行时的多态性静态联编( 前期联编) 静态联编要求在程序编译时就知道调用哪个函数, 就决定如何实现某一动作。动态联编( 后期联编、 滞后联编) 一直要到程序运行时才能确定调用哪个函数。系统在运行时才动态完成的联编。静态联编支持的多态性称为编译时多态性, 也称静态多态性。在C+中, 编译时多态性是经过函数重载和运算符重载实现的。动态联编支持的多态性称为运行时多态性, 也称动态多态性。在C+中, 运行时多态性是经过继承和虚函数来实现的。29运算符重载:
15、 C+除了能够对函数重载外, 还能够对大多数运算符实施重载。外部普通函数 类的友元函数 是类的成员函数 成员运算符函数定义的语法形式成员运算符函数的原型在类的内部声明格式为: class X/.返回类型 operator 运算符(形参表); /.;30. 虚函数的引入, 基类的指针能够指向它的公有派生类的对象, 用”指针”才有虚函数的问题。引入派生类后, 由于派生类是由基类派生出来的, 因此指向基类的指针和指向派生类的指针是相关的: ( 1) 基类的指针能够指向它的公有派生类的对象。但不允许指向它的私有派生类的对象。( 2) 派生类的指针不允许指向它的基类的对象。( 3) 基类的指针指向它的公
16、有派生类的对象时, 只能用它来直接访问派生类中从基类继承来的成员, 而不能直接访问公有派生类中定义的新成员。31有时在程序设计时, 使用对象指针的目的是为了动态和灵活, 即当指针指向不同对象( 基类对象或派生类对象) 时, 能分别调用不同类的成员函数。 如果将函数说明为虚函数, 就能实现这种动态调用的功能。虚函数的定义是在基类中进行的: virtual 函数类型 函数名(形参表) 函数体32纯虚函数的一般形式如下: virtual 函数类型 函数名(参数表)=0; 如果一个类至少有一个纯虚函数,那么就称该类为抽象类【第6章】33. 模板的概念模板是C+语言的一个重要特性。模板是实现代码重用机制
17、的一种工具, 它能够实现类型参数化, 即把类型定义为参数, 从而实现了代码重用, 使得一段程序能够用于处理多种不同类型的对象, 大幅度地提高程序设计的效率。 34函数模板和类模板( 1) .函数模板与模板函数所谓函数模板, 就是写一个函数模子, 用这个模子套印出许多功能相同, 参数类型和返回类型不同的函数。模板函数: 函数模板实例化后的具体函数。( 2) 类模板和模板类类模板 (也称为类属类或类生成类)是: 允许用户为类定义一种模子, 使得类中的某些数据成员, 某些成员函数的参数或者返回值, 能取任意数据类型【第7章】35C+流概念: cin 对象; cout对象;整型、 实型、 字符、 字符
18、串等有格式的输入输出36. 文件的输入输出: 在含有文件操作的程序中, 必须有如下的预处理命令: # include open、 close函数文本文件、 二进制文件读写。复习思考题、 即考试的A、 B、 C、 D选择题和填空题一、 分清下面的概念, 那些是正确的, 那些是错误的1. 面向对象程序的主要结构特点之一程序一般由类的定义和类的使用两部分组成。程序中的一切操作都是经过向对象发送消息来实现的。程序中的一切操作都是经过调用函数来实现的。程序一般由函数定义和函数的使用两部分组成。程序一般由变量的定义和变量的使用两部分组成。程序一般由对象的定义和对象的使用两部分组成。程序中的一切操作都是经过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 复习资料
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。