![面向对象程序设计复习_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/46e48081-2687-4240-84a8-bd9de9a61881/46e48081-2687-4240-84a8-bd9de9a618811.gif)
![面向对象程序设计复习_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/46e48081-2687-4240-84a8-bd9de9a61881/46e48081-2687-4240-84a8-bd9de9a618812.gif)
![面向对象程序设计复习_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/46e48081-2687-4240-84a8-bd9de9a61881/46e48081-2687-4240-84a8-bd9de9a618813.gif)
![面向对象程序设计复习_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/46e48081-2687-4240-84a8-bd9de9a61881/46e48081-2687-4240-84a8-bd9de9a618814.gif)
![面向对象程序设计复习_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/14/46e48081-2687-4240-84a8-bd9de9a61881/46e48081-2687-4240-84a8-bd9de9a618815.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计复习面向对象程序设计复习面向对象的三大特征:封装、继承、多态Chap5?内联函数p91:inline?内联函数的作用:提高效率?重载函数:-什么是重载函数p94-重载函数的匹配规则p93?默认参数(允许有重载函数)P963Chap9引用?引用的概念p186(必须得初始化)?引用传递参数P189(P193例子看懂)?引用作为返回值和值返回之间的区别(P193例9.6)?P203练习9.29.3第11章?类和对象的定义P233234class和struct的区别,默认的访问控制属性类的定义:class关键字或struct关键字对象的定义:类名对象名-不要关键字?定义成员函数的方法类
2、内定义p237类外定义§作用域操作符:可用在类内部,可以访问全局变量(同名覆盖的问题)在局部范围中声明与外部范围变量同名的变量时,局部范围中的变量掩盖外部变量例1:doubleA;voidmain()intA;A=5;/assigns5tointA例2:doubleA;/globalvariableAvoidmain()intA;/localvariableAA=5;/assigns5tolocalintA:A=2.5;/assigns5toglobaldoubleAChap12构造函数(是一种用于创建对象特殊的成员函数当创建对象时,系统自动调用构造函数,不能在程序中直接调用 构造函
3、数的作用是:为对象分配空间;对数据成员赋初值;请求其他资源 构造函数是必须的。当没有用户定义的构造函数时,系统提供缺省版本的构造函数 系统缺省版本的构造函数做公共初始化工作;用户提供版本的构造函数做用户要求的初始化工作 构造函数名与类名相同 一个类可以拥有多个构造函数(重载)林勾造函数可以有任意类型的参数,但不能具有返回类型析构函数,析构函数是用于取消对象成员函数当一个对象作用域结束时,系统自动调用析构函数 析构函数的作用是进行清除对象,释放内存等 析构函数是必须的。没有用户定义析构函数时,系统提供缺省版本的析构函数 系统缺省版本的析构函数做公共善后工作;用户提供版本的析构函数做用户要求的善后
4、工作 析构函数名为:类名 析构函数没有参数,也没有返回类型 析构函数以调用构造函数相反的顺序被调用。构造函数(可重载)、析构函数(不可重载)和重载之间的关系呐嵌对象的构造函数(含参数的情况)P281例12.12 冒号语法的使用:可以用来初始化常量和引用P283嫉勾造对象的使用p2851,2chap14唯的使用P312<new和delete运算符啦贝构造函数的使用:3种情况以及例子峨拷贝和深拷贝的概念P321例14.4P327练习14.2chap15(无大题,小题多)?静态成员(静态数据函数可以访问非静态数据成员)- 静态数据成员:声明和初始化位置(类的成员函数声明部分)- 静态成员函数:
5、直接访问静态数据成员,可以间接访问非静态数据成员classXintmember;public:staticvoidfunc(inti,Xa)cout<<a.member;:静态成员函数和非静态的区别(this 指针)p341友元的概念(不是类的成员函数)chap16苕侬承的概念,派生类的定义,派生类的构造函数心强承的方式啰态性和虚函数以及2者之间的关系确函数的限制:p363名屯虚函数和抽象类- 纯虚函数的定义嫄值兼容规则三种继承方式的基类、派生类和派生类对象特性继承方式公有继承私有继承保护继承基类特性派生类特性派生类对象publicpublic可以访问protectedprotec
6、ted,可访问private小可访问,可访问publicprivate,、可访问protectedprivate,可访问private小可访问,可访问publicprotected,可访问protectedprotected,可访问private小可访问,、可访问虚函数哪类的定义中,在函数原型之前写virtual。virtual只用来说明类定义中的原型,不能用在函数实现时。虚函数是动态联编的基础。娓非静态的成员函数。有继承性,基类中定义了虚函数,派生类中无论是否说明,同原型函数都自动为虚函数。本质:不是重载定义而是覆盖定义。硼用方式:通过基类指针或引用,执行时会根据指针指向的对象的类,决定调用
7、哪个函数。港态联编和动态联编-联编的阶段-联便的实现呦态联编只能通过指针或引用标识对象来操作虚函数。如果采用一般类型的标识对象来操作虚函数,则将采用静态联编方式调用虚函数。呦态联编,虚函数和多态性之间的关系Chap17名继承的造顺序(P387(1)(2)(3)(4)幡拟继承(虚基类)-二义性问题心强承的访问控制多继承的构造顺序class派生类名:继承方式1基类名1,继承方式2基类名2,.成员定义;注意:每一个“继承方式”,只用于限制对紧随其后之基类的继承。多继承的构造顺序(1)调用基类构造函数,调用顺序按照它们被继承时声明的顺序(从左向右)。(2)调用对象成员的构造函数,调用顺序按照它们在类中
8、声明的顺序。(3)派生类的构造函数体中的内容。(4)析构函数调用次序与构造函数相反。【上课时用的例子】虚基类?虚基类的引入-当一个派生类是从多个基类派生而这些基类又有一个公共的基类?定义-以virtual修饰说明基类例:classB1:virtualpublicB?作用-主要用来解决多继承时可能发生的对同一基类继承多次而产生的二义性问题Chap18?运算符重载的含义和格式若一运算符的操作需要修改类对象状态时,则它应该是成员函数,定义成友员时要用引用参数。如果运算符的操作数(尤其是第一个操作数)希望有隐式转换,则重载算符时必须用友员函数不能用友员函数重载的运算符是=()口>?前增量和后增量
9、的区别?赋值运算符的“浅拷贝”和“深拷贝”?类型转换?转换运算符P408?构造函数P414练习18.118.2重载+和-C语言中,运算符+和-有两种方式(P405)前缀方式:+i;-i;一元成员函数重载:aa.operator+();友员函数重载:operator+(X&aa)/其中aa是X类的对象后缀方式:i+;i-;二元成员函数重载:aa.operator+(int);友员函数重载:operator+(X&aa,int)这时,第二个参数(int)一般设置为0例如:i+;等价于i+(0)Chap19?I/O标准流类(标准流,文件流,串流哪几个是预定义流?)?常用控制符(简单的
10、控制符及作用P422)chap20?模板的概念?函数模板、模板函数?类模板、模板类(函数模板与类模板的区别?)?模板的定义?模板的参数?模板的使用P450练习20.1Chap21异常处理的实现P45374.8#include<iostream.h>voidmain()for(inti=1;i<=10;i+)for(intj=1;j<=10-i;j+)cout<<""for(intj=1;j<=2*i-1;j+)cout<<"#"cout<<endl;4.8(2)#include<io
11、stream.h>voidmain()for(inti=1;i<=8;i+)for(intj=1;j<=i;j+)cout<<""for(intj=1;j<=18-i;j+)cout<<"#"cout<<endl;9.2#include<iostream.h>#include<stdlib.h>int&put(intn);/putvalueintothearrayintget(intn);/obtainavaluefromthearrayintvals10;int
12、error=-1;voidmain()put(0)=10;/putvaluesintothearrayput(1)=20;put(9)=30;cout<<get(0)<<endl;cout<<get(1)<<endl;cout<<get(9)<<endl;put(12)=1;/outofrange/.int&put(intn)if(n>=10)cerr<<"rangeerrorinputvalue!n"exit(1);returnvalsn;18.2#include<ti
13、me.h>#include<iostream.h>#include<string.h>#include<stdlib.h>classTimepublic:Time(char*s=NULL);voidoperator+(Time&ti);voidoperator-(Time&ti);voidDisplay。;protected:inthour;intminute;intsecond;Time:Time(char*s)charstr9=0;chart3=0;ifstrncpy(str,s,8);else_strtime(str);hour=
14、atoi(strncpy(t,str,2)%24;minute=atoi(strncpy(t,&str3,2)%60;second=atoi(strncpy(t,&str6,2)%60;voidTime:operator+(Time&ti)intst;st=second+ti.second;second=(st)%60;st=st/60+minute+ti.minute;minute=(st)%60;st=st/60+hour+ti.hour;hour=(st)%24;voidTime:operator-(Time&ti)intst;st=60+second-t
15、i.second;second=st%60;st=60+st/60+minute-ti.minute-1;minute=st%60;st=24+st/60+hour-ti.hour-1;hour=(st)%24;voidTime:Display()charresult9="XX:XX:XX"result0='0'+hour%10;result1='0'+hour/10;result3='0'+minute%10;result4='0'+minute/10;result6='0'+second%10;result7='0'+second/10;cout<<result<<endl;voidmain()Timea;Timeb("02:15:30");a+b;a.Display();20.1#include<iostream.h>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 德育工作与学校教育目标的统一性
- DB 3705T 51-2024微型月季设施栽培技术规程
- 个人信用贷款第三方担保合同样本
- 云存储硬盘空间租用合同协议
- 上市公司技术合作合同模板
- 个人房屋抵押贷款合同范本
- 临时用工安全免责合同协议
- 个人理财规划合同书
- 专业版办公室装修合同模板
- 二手汽车购销合同范本
- 中考记叙文阅读
- 《计算机应用基础》-Excel-考试复习题库(含答案)
- 产科沟通模板
- 2023-2024学年四川省成都市小学数学一年级下册期末提升试题
- GB/T 7462-1994表面活性剂发泡力的测定改进Ross-Miles法
- GB/T 2934-2007联运通用平托盘主要尺寸及公差
- GB/T 21709.13-2013针灸技术操作规范第13部分:芒针
- 2022年青岛职业技术学院单招语文考试试题及答案解析
- 急诊科进修汇报课件
- 一年级家访记录表(常用)
- 信息技术基础ppt课件(完整版)
评论
0/150
提交评论