- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C面向对象程设计(word版)
C++面向对象程序设计
主讲人:张位勇
计算机与信息科学系
Email:foxdream.zwy@
Tel
面向:计算机本专科专业
讲授学时:理论学时44
实验学时12
预修课程:
计算机导论
程序设计基础(可选)
本课程的教学目标是使学生系统掌握面向对象编程的基本原理,着重掌握面向对象编程原理,结合C++开发语言进行面向对象编程理论的实践,培养学生独立获取知识、系统分析和解决问题的能力 。
要求掌握面向对象程序设计的基本技术及思想,掌握统一建模语言,了解改良的软件开发过程,对大中型软件的开发设计有较好的理论和技术依据。
1、概述
介绍面向对象程序设计诞生的原因以及相关特征,对C++与C的进行了比较,并对UML(Unified Modeling Language)进行了简单的说明。
2、C++编程基础
主要讲解基本程序结构、变量和输入\输出(I\O),并对注释、算术运算符、递增运算符、数据转换以及库函数做了简单介绍。
3、循环和选择
对循环和选择两类控制语句以及关系和逻辑运算符做了详细介绍,并对运算符的优先级做了相关讨论。
4、结构
重点介绍结构相关概念以及特征,并对另外一种可以自定义数据类型的方法——枚举做了相关说明。
5、函数
在掌握函数基本概念和使用基础上,对引用、重载以及内联等相关概念做了深入的讲解。
6、对象和类
本章为重点,对类和对象的相关实现细节做了深入探讨,最后对使用面向对象程序设计的相关方法做了简单讨论。
7、数组和字符串
研究在类中作为数据成员的数组以及用来记录对象的数组,并介绍了实现字符串的几种方法。
8、运算符重载
对一元和二元运算符的重载实现做了详细说明,同时对UML的第一个特征——类图做了简单的介绍。
9、继承
本章为重点,涉及了继承相关细节问题。在介绍一些具体实例后,对继承的相关特点做了详细的讨论。
10、指针
从基本概念开始,逐步介绍指针,直到相关复杂应用。
11、虚函数
本章为重点,内容覆盖了虚函数、友元函数、静态函数、拷贝构造函数、UML对象图以及this指针等C++高级特征。
12、流和文件
主要讨论C++的流类。介绍如何使用C++的流来执行与文件相关联的活动,并对C++中与文件相关的特征做了简单描述。
13、多文件程序
全面讨论多文件程序。了解文件间通信如何进行的,以及头文件是如何描述的等内容。
14、模板和异常
重点介绍C++的两个高级特性:模板(template)和异常(exception)。
15、标准模板库
主要描述STL及其使用方法,并讨论最常见的容器和算法。
16、面向对象软件开发
讨论统一开发过程以及如何应用于实际程序。
教材:
Robert Lafore著,邓子梁等译:C++面向对象程序设计(第四版),中国电力出版社,2004.2
主要参考书:
Stanley B.Lippman著,李师贤等译:C++ Primer中文版(第4版),人民邮电出版社,2006.6
最终成绩=考试成绩+平时成绩
平时成绩:
实验成绩
作业
出勤
加减分
课程设计成绩
1.1 面向对象程序设计诞生的原因
1.1.1 面向过程语言
每条语言告诉计算机该做什么,程序就是一个指令序列。
划分为函数
一个面向过程的程序被划分为多个函数,每个函数都有明确的功能定义,对程序中的其他函数也定义了明确的接口。
将程序划分为函数的思想被进一步扩充,即把大量的函数聚集到一个称为模块(module)的实体内。
把程序划分为函数和模块是结构化程序设计的基石之一。
结构化程序设计的问题
函数能够不受限制地访问全局性数据;
函数和数据之间缺乏联系。
不受限制的访问
一个过程化的程序中,有两种数据:局部数据和全局数据。
在大型程序中,有很多的函数和全局数据项,从而导致了函数和数据之间数目巨大的潜在连接。这会导致麻烦:首先,它使程序结构很难概念化;其次,它使得程序很难修改。全局数据项的一个改变会导致所有访问这个项的函数重写。
现实世界建模
面向过程范型中,数据与函数分离为现实世界提供了一个粗劣的模型。在现实世界中,必须处理像人和汽车等的对象,这些对象都有其属性和行为。
属性即程序中的数据,都有其特定值。
行为即处理这些数据的方法,即函数。
只有数据和
文档评论(0)