2023年面向对象程序设计总复习资料.pdf
《2023年面向对象程序设计总复习资料.pdf》由会员分享,可在线阅读,更多相关《2023年面向对象程序设计总复习资料.pdf(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面 向 对 象 程 序 设 计 总 复 习(2 02 3夏)复 习 之 一、对 照 书 本(或 上 课 课 件)上,搞 懂 有 关 概 念【第0 1章】1.面向对象程序设计是不同于传统程序设计的一种新的程序设计范型。它对减少软件的复杂性,改善其重用性和维护性,提高软件的生产效率,有着十分重要的意义。因此面向对象的程序设计被认为是程序设计方法学的一场实质性的革命(在导学中)。2.面向对象(0-0)程序设计是一种新的程序设计范型。这种范型的重要特性是:程序=对象+消息面向对象程序的重要结构特点是:第一,程序一般由类的定义和类的使用两部分组成;第二,程序中的一切操作都是通过向对象发送消息来实现的,对
2、象接受到后,启动有关方法完毕相应操作。3,现实世界中,对象一般可以表达为:属性+行为现实世界中的对象,具有以下特性:(1)每一个必须有一个名字以区别于其他对象;(2)用属性来描述对象的某些特性;(3)有一组操作,每组操作决定对象的一种行为;(4)对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。4.在现实世界中,类是一组具有相同属性和行为的对象的抽象。类与对象的关系是抽象和具体的关系。在 C+面向对象的程序设计中,把类中的属性称为数据(数据成员),类中的操作是用函数(函数成员)来实现的。5.面向对象程序设计的基本特性:抽象性、封装性、继承性和多态性(1).抽象是通过
3、特定的实例(对象)抽取共同性质后形成概念的过程。(2).在面向对象程序设计中,封装是指把数据和实现操作的代码集中起来放在对象内部,并尽也许隐蔽对象的内部细节。(3),继承机制允许派生类继承基类的数据和操作(即数据成员和成员函数),也就是说,允许派生类使用基类的数据和操作。同时派生类还可以增长新的操作和数据。从继承源上分,继承分为单继承和多继承。(4).面向对象系统的多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。如可以有同名函数【第 2 章】6.简朴的C+程序例 2.1 计算两个整数之和s um.c p p#i ncl u d e /系统头;文 两 行 田 一*行 柠 耕.看:0。
4、1八/1。dicu+raaE h5文献u s in g name s pace s t din t m ain()/主函数int x,y,sum;/定义三个整型变量coutx;/从键盘输入变量x 的值c iny;/从键盘输入变量y 的值su m=x+y;c ou t x+y=sum”表达向右老:P rintf新:c o u t是标准输出流,在程序中用于代表标准输出设备,即屏幕。运算符、“表达向左使用c i n或cout进 行I/O操作时,在程序头中头文献#include 7.函数原型(函数声明)(重点)返回值类型 函 数 名(参数表);例2.7in t add(in t a,i nt b);i
5、nt add(int,i n t);使用在前,定义在后,要先声明。若定义在前,使用在后,就可不必声明。8.函数重载:C+中,只要函数的参数的类型不同,或者参数个数不同,或者二兼有之,几个函数可以用相同的函数名。称为函数重载9.C语言用函数mal 1 oc()和free()动态分派内存和释放动态分派的内存。C+使用运算符n e w和d e I e te能更好、更简朴地进行内存的分派和释放。10.引用(重点)引用可为变量起别名,它重要用作函数参数以及函数的返回类型。引用有三种:(1)有变量的引用、(2)参数引用和(3)返回值引用。11.1.&取地址运算符 取西瓜皮2、*指针运算符(间接访问运算符)
6、挖西瓜饺【第 3 章】12.C+中 说 明(类的定义)类的一般形式为clsa a 类 名 p r iv a te:(可省略)私有段数据成员和成员函数p rotecte d :保护段数据成员和成员函数public:公有段数据成员和成员函数?;成员函数的定义方式:第一种方式是在类定义中只给出成员函数的原形,而成员函数体在类的外部定义。第二种方式是将成员函数定义在类的内部,即定义为内置函数。(1)隐式定义(2)显式定义13.类对象中成员的引用(使用、访问都是同一个意思)不管是数据成员,还是成员函数,只要是公有的,就可以被外部函数直接引用,引用的一般格式是:对象名.数据成员名 和 对象名.成员函数名(
7、实参表)外部函数不能引用对象的私有成员总之:类成员的访问属性:类的公有成员不仅可以被类中成员函数访问,还可以在类的外部通过类的对象进行访问。类的私有成员只能被类中成员函数访问,不能在类的外部通过类的对象进行访问。1 4.构造函数的特点:(1)构造函数的名字必须与类名相同,否则编译程序将把它当作一般的成员函数来解决。(2)构造函数没有返回值,在声明和定义构造函数时,是不能说明它的类型的的,甚至说明为void类型也不行。(3)构造函数也是成员函数,与普通的成员函数同样,构造函数的函数体可写在类体内,也可写在类体外。(4)一般不提倡在构造函数中加入与初始化无关的内容(5)构造函数一般声明为公有成员。
8、它不需要用户来调用,而是在建立对象时自动执行的。(6)在实际应用中,通常需要给每个类定义构造函数。假如没有给类定义构造函数,则编译系统自动地生成一个缺省的构造函数。compl e x:c ompl e x()/不能带任何参数。(7)定义构造函数时,也可以是不带参数的。15.C+允许重载构造函数,这些构造函数之间名字相同,而以它们所带参数的个类或类型的不同而区分。带默认参数的构造函数。16.对象的赋值和拷贝构造函数,其作用是,在建立新对象时,使用一个已经存在的对象去初始化这个新对象。P i on t p2(p l);17.析构函数也是特殊成员函数,用于释放对象。(1)析构函数与构造函数名字相同,
9、但它前面必须加一个波浪号()。(2 )析构函数没有参数,也没有返回值,并且不能重载,因此在一个类中只能有一个析构函数。(3 )当撤消对象时,编译系统会自动地调用析构函数。18.可以用类定义对象数组:类 名 数 组 名 元素个数;19.当需要时,可以用类定义对象指针。对象指针就是用于存放对象地址的变量类 名*对象指针名;2 0 .类的封装性,使类只能通过成员函数来访问私有成员。这是好事但也有一定的限制太死的感觉。能否开个小孔口,必要时作个破例,使外界函数、别的类的个别成员函数、甚致别的类的所有成员函数可访问某个类的私有成员。这个方法称为友元。2 1 .友元涉及友元函数和友元类(1)友元函数分为:
10、非成员函数作友元和别的类的成员函数作友元(2)友元类:在类定义时,在类内说明一个类(该类前面已定义),前 加 上fr i e n d表达该整个的一个类是本类的友元类。友元类的所有成员函数可以访问它自己类私有成员又可本类的私有成员。【第4章】2 2.派生类的定义基类:c l a s s 基类名类的内容;声明派生类:cl a s s 派 生 类 名:继承方式 基类名/派生类新增的数据成员和函数成员?;继承方式可为公有继承(用p u blic)、私有继承(用pr i v a t e 或缺省)和保护继承(用pro t ected)2 3.基类成员在派生类中的访问属性(重点)基类中的成员 在公有派生类中
11、的访问属性 在私有派生类中的访问属性 在保护派生类中的访问属性私有成员不可直接访问不可直接访问不可直接访问公有成员公有私有保护保护成员保护私有保护2 4.派生类对基类成员的访问规则(重点)(1)私有继承的访问规则基类中的成员私有成员公有成员保护成员访问方式内部访问对象访问不可访问不可访问可访问不可访问可访问不可访问(2)公有继承的访问规则基类中的成员私有成员公有成员保护成员访问方式内部访问对象访问不可访问不可访问可访问可访问可访问不可访问(3)保护继承的访问规则基类中的成员私有成员公有成员保护成员访问方式内部访问对象访问不可访问不可访问可访问不可访问可访问不可访问2 5.派生类的构造函数和析构
12、函数(1)派生类的构造函数和析构函数执行顺序无论何中派生,当创建派生类对象时,一方面执行基类的构造函数,随后再执行派生类的构造函数;当撤消派生类对象时,则先执行派生类的析构函数,随后再执行基类的析构函数。(2).派生类的构造函数和析构函数的构造规则简朴的派生类的构造函数一般格式为:派生类名(参数总表):基类名(参数表)对象;c o u t 对象;整型、实型、字符、字符串等有格式的输入输出3 6.文献的输入输出:在具有文献操作的程序中,必须有如下的预解决命令:#inc 1 ud e o p e n、close 函数文本文献、二进制文献读写。复 习 思 考 题、即 考 试 的A、B、C、D选 择
13、题 和 填 空 题一、分清下面的概念,那些是对的的,那些是错误的1 .面向对象程序的重要结构特点之一,程序一般由类的定义和类的使用两部分组成。V程序中的一切操作都是通过向对象发送消息来实现的。X程序中的一切操作都是通过调用函数来实现的。X程序一般由函数定义和函数的使用两部分组成。X程序一般由变量的定义和变量的使用两部分组成。X程序一般由对象的定义和对象的使用两部分组成。X程序中的一切操作都是通过定义函数来实现的。X程序中的一切操作都是通过定义类来实现的。2 .对象是现实世界中的一个实体,其特性V每个对象必须有一个名字,以示区别。/有属性描述。V有一组操作。/创 建对象时会自动调用构造函数。X必
14、须有一个关键字。X一定要自定义一个构造函数。X要有二个以上数据。3 .面向对象系统的特性是V抽 象 性V封装性 V继承性 V多态性 X完 整 性X唯一性 X二义性。X安全性4.类的概念是V对一组具有共同的属性特性和行为特性的对象的抽象。,同一类数据的集合。X类即是对象数组。X各种对象的集合。X同一记录的集合。X同类函数的集合。X现实世界中所有对象的集合。5.类和对象之间的关系是V抽象和具体的关系。/类型和变量之间的关系。V结构类型和结构体的关系。X定义和被定义的关系。X调用和被调用的关系。X类即是对象数组。X型和值的关系。X指针和所指的对象的关系。6 .构造函数的特性V构造函数的函数名与类名完
15、全相同。V构造函数可以有形式参数。/构造函数可以重载。V在创建对象时被执行。X在程序编译时被执行。X在创建类时被执行。X在程序装入内存时被执行。X构造函数必须说明返回类型。X程序中要有调用构造函数的语句。7 .析构函数的特性V一个类中只能定义一个析构函数。/析 构 函数名与类名相同并加。,系统会自动调用析构函数。X析构函数的定义只能在类体内。X析构函数可以有多个参数。X一个类中能定义多个析构函数。8 .关于成员函数特性的下述描述V成员函数可以重载。V成员函数可以设立参数的缺省值。/成 员 函数可以是静态的。V类定义中只给出成员函数的原型,而成员函数在类外定义。V类定义中只给出成员函数的原型,而
16、成员函数在类外定义并在之前加inline。,可在类内定义。x成员函数一定要在类内定义。x成员函数一定是内置函数。9.下列的各种函数中,是本类的成员函数/构 造函数/析 构函数 V拷贝构造函数/缺省参数的构造函数 x友元函数 x主函 数x普 通 函 数x标准函数10.在友元函数的下面说法中,对的的是:,友元函数是独立于当前类的外部函数。x一个友元函数不能同时定义为两个类的友元函数x友元函数必须在类的外部定义。x在外部定义友元函数时,必须加friend11.友元的作用是什么,一个类的友元可以访问该类的什么。提高程序的运营效率。X加强类的封装性。X实现数据的隐藏性。X增长成员函数的种类V 所有成员
17、X只能是私有成员。X只能是公有成员 X成员函数1 2.对基类和派生类的关系描述中V派生类(如公共汽车)是基类(汽车)的子集。V派生类是基类定义的扩延。/无 论哪种派生,基类的私有成员不允许派生类的成员函数访问。/无 论哪种派生,基类的公有成员允许派生类的成员函数访问。V 无论哪种派生,基类的保护成员允许派生类的成员函数访问。X派生类是基类的具体化。X派生类是基类的组合。X无论哪种派生,基类的保护成员不允许派生类的成员函数访问。13.派生类的对象对它的基类成员中,可以访问的是“公有继承的公有成员。x公有继承的保护成员。x公有继承的私有成员。x公有继承的所有成员。X私有继承的公有成员。X私有继承的
18、私有成员。X私有继承的所有成员。X私有继承的保护成员。14.对虚基类对的的论述V定义派生类时,在基类名前加v irtu a l。x 定义基类时加v i rtu aL x 成员函数前加virtuaL x在派生类名前加vir t u a I.1 5.一个派生类有多个父类,而这多个父类又有一个共同基类,这种情况,才考虑设立虚基类,其目的是:V消除二义性。简化程序。提高运营效率。减少目的代码。16.C+中函数可以重载:(P31),只要函数参数的类型不同,V或者参数的个数不同,/或者两者兼有之,两个以上函数可以同名。17.不可重载的函数的是:V析构函数。(可以:)普通的成员函数。友元函数。外部函数。18
19、.可定义作运算符重载函数的是V成员函数。V友元函数。V类以外的函数。X析构函数。X无返回值的函数。X构造函数。19.不能重载运算符V:V?:&new+()d e 1 ete20.关于动态联编的描述,动态联编称为运营时的多态性是通过什么来实现的。V动态联编是以虚函数为基础的。/动态联编是在运营时拟定所调用的函数的。V动态联编调用的函数,是用基类对象的指针或对象引用所指的函数。,继承和虚函数。动态联编是在编译时拟定操作函数的。函数重载和运算符重载。运算符重载。函数重载。21.说白了,通过基类指针或引用来访问基类和派生类中的同名函数,才考虑虚函数。其描述:V虚函数是在基类中用virtual说明,派生
20、类中重新定义的函数。x虚函数是一个stat i c类型的成员函数。x虚函数是一个非成员函数。x派生类的虚函数与基类的虚函数具有不同的参数个数和类型。2 2 .抽象类论述:V假如一个类至少有一个纯虚函数,那么该类为抽象类。/抽 象类只能用作其他类的基类,不能建立抽象类对象。V抽象类可以用来定义指针。X抽象类可以作为某个函数的返回类型。2 3.进行文献操作时需要包含的文献,C+用c o u t和c in进行输出/输入操作时需要包含文献。Vf s tream.h Viostre a m.h stdio.h std 1 ib.h s t ri n g.hmath,h2 4.面向对象程序设计是不同于传统
21、程序设计的一种新的程序设计范型。面向对象的程序设计被认为是程序设计方法学的一场实质性的革命(在导学中)。2 5.面向对象(0-0)程序设计是一种新的程序设计范型。这种范型的重要特性是:程序=对象+消息26.现实世界中,对象一般可以表达为:属性+行为27.在定义类时,第一个保存字。(cla ss)28.将数据结构和作用于数据结构上的操作组成一个实体,数据的表达方式和对数据的操作细节被隐藏起来,这是面向对象程序设计的(封装性)。而 函 数 重 载 是(多态性)。2 9.C+中类的定义内部,英 文priv a t e段,p r o t e cted段,public段(私有段 保护段 公 有 段)30
22、.定义了类A,在主函数中如出现:A*p,obj z ob10 ;的语句。(则p是对象指针、。国是对象、o b是对象数组。)31.C+的运算符:new delete(输 入 输 出 申请 释放)3 2 .在C +定义的类中,成员可分为二类,有三个段C数据成员 函数成员 私有 公有 保)3 3.在一个类定义中,可以声明友元,友元可以是三种友元。(友元函数 友元成员 友元类)3 4.C+中,函数说明为vo id fun(i n t&i)的引用叫,(参 数 引 用),函数说明为v o i d&fun(int i )的引用叫。(返 回 值 引 用)35.继承机制允许派生类继承基类的什么,(数据和操作)同
23、时,派生类还可以增长新的什么。(数据和操作)3 6.类外的函数作运算符重载时,只能访问类的(上 鱼 工 成员,而用类的友元运算符函数或成员运算符函数重载可以访问类的(所有)成员。3 7 .一个类模板允许用户为类定义什么?(一个模式(子)使得类中的某些数据成员、某些成员函数的参数或返回值,能取什么类型?(任意数据类型)3 8 .模板是实现代码重用机制的一种工具,函数模板的实例化、类模板的实例化分别称为(模板函数、模板类)复 习 之 二、阅 读 程 序 写 运 营 结 果、程 序 填 空(把 这 些 程 序 真正 读 懂,不 要 背 答 案!)1.函数、函数调用、函数原型(涉及参数引用、返回值的引
24、用)2.类的定义和定义对象(涉及对象指针)3.派生和继承的应用4.派生类的构造函数和析构函数执行顺序5,函数重载和运算符重载复 习 思 考 题1.#include int add(in t r int);int ma i n()int x,y,sum;coutvv”输入二个整数:“;c i nxy;s um=add(xz y);coutvvx+y=rrsumend 1;r e tu r n 0;int a dd(i nt a,i nt b)in t c;c=a+b;return c;答案:输入二个整数:10 20 x+y=302.#includ e vo i d f u n 1(i nt i)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 面向 对象 程序设计 复习资料
限制150内