面向对象 c++课件资料

面向对象 c++课件资料

ID:21565895

大小:1.37 MB

页数:159页

时间:2018-10-19

上传者:jjuclb
面向对象 c++课件资料_第1页
面向对象 c++课件资料_第2页
面向对象 c++课件资料_第3页
面向对象 c++课件资料_第4页
面向对象 c++课件资料_第5页
资源描述:

《面向对象 c++课件资料》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1面向对象编程技术课程代码:2020430050时间:周一,1~2节周四,1~2节 地点:研302周次:3~14周,遇节假日调课则顺延 授课教师:郝应光邮件地址:h_lionstar@126.com2 3课程考核及成绩构成本课程的成绩由期末考试和平时作业2部分构成平时成绩由:期末大作业+平时随堂作业构成具体比例待定 4主要内容面向对象技术C++语法概要(6)MFC框架基础详解(15)MFC文档/视图结构详解(9)几个应用程序开发实例(6)VisualC++应用程序设计(12)多线程程序设计(3)TCP/IP网络程序设计(3)动态连接库程序设计(3)数据库程序设计(3) 5第一部分面向对象技术面向对象概念UML 6第二部分C++语法概要类和对象静态数据成员及成员函数对象与指针操作符重载和友员继承多态性 7第三部分MFC框架基础VisualC++集成开发环境简介Windows操作系统下的应用程序(SDK、MFC)用Appwizard开发一个MFC程序事件处理、映射模式及滚动视图GDI、颜色及字体对话框及控件ActiveX及IE公用控件位图 第四部分MFC文档视图结构菜单、键盘及命令处理工具栏及状态栏文档和视图分离SDI及MDI文档的读写打印及打印予览拆分窗口及多视图8 9第五部分MFC程序设计的其他方面多线程程序设计数据库程序设计动态连接库程序设计TCP/IP网络程序设计 10主要参考书面向对象建模与设计,Rumbaugh,电力出版社面向对象分析与设计,GradyBooch,机械工业出版社ThinkinginC++,BruceEckelC++Primer,StanleyBLippman,中国电力出版社C++语言及其程序设计教程,张国峰,电子工业出版社深入浅出MFC,2Ed,侯俊杰(侯杰),松岗。VisualC++技术内幕,Microsoft,北京希望电子出版社 11主要网络资源www.csdn.netwww.codeguru.com(microsoft)www.sourceforge.com(世界最大开源代码库)www.microsoft.com 第一部分面向对象技术12 软件开发软件开发的过程就是程序员对客观世界问题域形式化的过程 计算机开发语言机器语言、汇编语言、高级语言,高级语言可能有几千种计算机语言都是某种程度的形式语言 计算机高级语言的历史由美国科学家巴科斯设计,1956年在IBM计算机上实现的FORTRAN。70年代以来的PASCAL80年代,C语言80年代后期,C++90年代以来,语言要OO而且Visual,更要Web,Java快速推广。 PO方法:现实世界→流程图(变量,函数)→PO语言→执行求解OO方法:现实世界→类图(对象,方法)→OO语言→执行求解OO作为一种思想及编程语言,为软件开发的整个过程:分析、设计到coding,提供了一个完整解决方案。从PO到OO 17面向过程思想问题域(Domain)以问题域的系统流程为中心分析Sub1Sub2Subn….各子流程实现----函数化Func1Func2Funcn….根据系统的流程组建软件,通过函数的调用实现 18面向对象思想问题域(Domain)以问题域中的事物为中心思考问题Object1Object2Objectn….对象归类----抽象化Class1Class2Classn….类实例化:定义对象,构建系统,形成解决方案 19面向对象的基本概念Coad和Yourdon给出了一个定义:“面向对象=对象+类+继承+通信”。如果一个软件系统是使用这样4个概念设计和实现的,则我们认为这个软件系统是面向对象的。 20对象对象是面向对象开发模式的基本成份。每个对象可用它本身的一组属性和它可以执行的一组操作来定义。属性一般只能通过执行对象的操作来改变。操作又称为方法或服务,它描述了对象执行的功能,若通过消息传递,还可以为其它对象使用。 21消息(Message)消息是一个对象与另一个对象的通信单元,是要求某个对象执行类中定义的某个操作的规格说明。一个对象接收到消息则调用消息中指定的方法,并将形式参数与参数表中相应的值结合起来。 22类类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。 23同一个类的每个对象都是类的实例(Instance),它们都可使用类中提供的函数。对象的状态则包含在它的实例变量,即实例的属性中。 24继承(Inheritance)继承是使用已存在的定义做为基础建立新定义的技术。新类的定义是基础类所声明的数据和新类所增加的声明的组合。新类复用既存的定义,而不要求修改既存类。既存类可当做基类来引用,则新类相应地可当做派生类来引用。 25面向对象方法学面向对象分析OOA面向对象设计OOD面向对象实现OOP 26面向对象技术回顾面向对象技术是许多人历经多年研究积累的产物。类的概念,是面向对象的重要组成部分。Smalltalk,提出许多面向对象技术的核心概念,如:消息和继承。Dijkstra的软件正确性理念,提出了用抽象层构造软件的观点。Ada语言,提出了一般性和包两个概念。C++语言,最广泛使用的面向对象的语言。Java语言,健壮的、可移植的、流行的面向对象语言。 27UML的产生1988年到1992年是面向对象方法学蓬勃发展的时期,人们从各自的经历和软件开发的经验提出了各种面向对象的开发方法,代表的有:SallyShlaer和SteveMellor以信息模型化方法作为基础,并为目标系统增设了状态模型和过程模型;PeterCoad和EdYourdon则在信息模型化、面向对象的程序设计语言和基于知识的系统的基础上,建立了他们的OOA和OOD,主要工具是类与对象图、对象状态图和服务图;HP公司的Fusion开发方法。 28JimRumbaughGradyBoochIvarJacobson 29OOA和OOD是面向对象方法学中重要的部分,UML是具体的方法OOP涉及到具体的编程语言,C++开发要使用合适的工具IDE:VisualC++ 面向对象的特点30封装(Encapsulation)通过定义类实现继承(Inheritance)通过派生新类实现多态性(Morphism)虚拟函数实现 XO(X?-Oriented)SO(Service-Oriented)OO(对象、类)PO(过程、函数、变量)OO之后是什么? 32第二部分C++语法概要第一章C++基础 331.1C++的起源和特点C语言1972年,由DennisRitchie设计,可以认为是最优影响力的发明之一。为改进C语言,“带类的C”,1983命名为C++对C的类型系统改进和扩充(更安全)支持面向对象C++保持与C兼容(快速普及)C++不是纯粹的面向对象的语言 341.2程序的编译过程 351.3C++的词法记号关键字各种常量操作符标识符分隔符 361.4C++程序的结构 37注释输入和输出函数变量(对象)符号常量表达式语句 381.5C++的基本数据类型 391.7对象声明基本语法如下:数据类型标识符1,标识符2,。。。标识符n;初始化数据类型标识符1(初始值1),标识符2(初始值2),。。。标识符n(初始值n);数据类型标识符1=初始值1,标识符2=初始值2,。。。标识符n=初始值n;赋值I=10; 401.6常量整数常量浮点常量字符常量字符串常量布尔常量 411.8枚举类型定义:通过枚举一个类型的值域来定义一个数据类型,值域是通过在枚举声明时所指定的一组文字量(又称枚举常量)指定的。语法形式:enum标识符{标识符1,标识符2,标识符3,。。。标识符n}; 421.9表达式表达式由操作数和操作符组成,操作符分:算术操作符:+、-、*、/、%、++、--关系操作符:>、<、==、>=、<=、!=逻辑操作符:&&、||、!逗号表达式:?:sizeof操作符:sizeof位操作符:&、|、~赋值操作符:= 431.10表达式中的类型强制隐含地从一种类型向另一种类型的值的映射。赋值类型强制右边的表达式类型映射成左值的类型。强制类型转换static_cast(E)T(E)(T)E 44第二章C++程序的基本控制结构顺序结构表达式语句空语句块语句选择结构循环结构 452.1选择结构ifif-----else及其嵌套switch~case 462.2循环结构whiledo~whilefor 47嵌套循环循环是可以嵌套的 482.3辅助控制语句gotobreakcontinue 49第三章函数 503.1函数的基本概念完成特定功能的一段代码具有合法的名称具有一定返回类型可以多次调用基本形式:返回类型函数名(形式参数1,形式参数2,。。。,形式参数n){函数体;} 513.2参数的传递值调用地址调用引用调用参数的求值顺序 523.3重载具有相同函数名,但其参数个数不同或参数类型不同的一组函数称为重载。 533.4带缺省参数值的函数函数声明中可以为一个或多个参数指定缺省参数值。具有缺省值的参数右边不能出现没有缺省值的参数。重载函数的参数具有缺省值时要注意。例:voidfun(intx,inty=0)voidfun(intx) 54第四章类和对象4.1类的结构C++的类是对象的抽象数据成员。成员函数。C++类的说明第二部分C++语法概要 55举例:4.1类的结构(外部说明) 56访问控制描述符public后声明的是公有数据成员和成员函数,可被任何程序单元引用。private后声明的是私有数据成员和成员函数,仅可被类内部引用。public和private出现的顺序和次数是任意的。4.1类的结构(外部说明) 57类成员函数的实现4.1类的结构(内部实现)举例 584.2类的实例化--对象的实现一般语法:类标识符对象标识符;可以声明多个对象,对象之间代码共享,数据独立。可使用对象名引用对象的公有成员函数。方法如下:对象名.成员函数名(参数列表); 594.2类的实例化--对象的实现成员函数所操作的数据成员是该类的某个对象的数据成员。 60举例4.2类的实例化--对象的实现 614.3构造函数和析构函数构造函数的作用是在对象被创建时使用特定的值构造对象(初始化)。析构函数的作用是在对象被删除时做一些清理工作。构造函数与类同名。析构函数是类名前加~两者无返回类型,析构函数无参数。 624.3构造函数和析构函数举例 634.3构造函数和析构函数 644.3构造函数和析构函数 654.4成员函数的内联实现函数体放在类体内。函数体放在类体外,使用inline关键字。 664.4成员函数的内联实现 674.5带缺省参数值的成员函数和成员函数重载#includeclassLocation{public:Location(intx=0,inty=0);voidMove(intx=5,inty=5);voidValueX(intx);intValueX();voidValueY(inty);intValueY();private:voidSet(intx,inty);intX,Y;}; 684.5带缺省参数值的成员函数和成员函数重载Location::Location(intx,inty){Set(x,y);}voidLocation::Move(intx,inty){Set(x,y);}voidLocation::ValueX(intval){X=val;}intLocation::ValueX(){returnX;}voidLocation::ValueY(intval){Y=val;}intLocation::ValueY(){returnY;}voidLocation::Set(intx,inty){X=x;Y=y;} 694.5带缺省参数值的成员函数和成员函数重载intmain(){LocationA,B;//LocationA(0,0),B(0,0)A.Move();//A.X和A.Y被设为5A.ValueX(15);//A.X=15cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭