当前位置:萝卜系统 > 硬件软件教程 > 详细页面

C ++编程的最新篇章(第3版)

C ++编程的最新篇章(第3版)

更新时间:2023-06-22 文章作者:未知 信息来源:网络 阅读次数:

根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

c/c++程序设计教程——面向过程分册(第2版)_c/c++程序设计教程——面向过程分册(第2版)_c程序设计语言 第2版新版 源码

1.1面向对象的编程1.1.1基本概念

面向对象编程的主要特征是“程序=对象+消息”,其基本元素是类和对象. 面向对象程序设计在结构上具有以下特点.

(1)程序通常由类的定义和类的使用组成. 在主程序中,定义了每个对象,并定义了在它们之间传递消息的规则.

(2)程序中的所有操作都是通过向对象发送消息来实现的. 收到消息后,对象将启动相应的方法以完成操作.

程序中使用的类可以由用户自己定义,也可以使用现成的类(包括系统类库中为用户提供的类以及其他用户自己设计和构建的其他类). 尝试使用现成的类是面向对象编程所倡导的样式.

1. 对象

在现实世界中客观存在的任何事物都可以称为对象. 它可以是有形的具体事物,例如书籍,桌子,汽车等,也可以是无形的抽象事物,例如表演. ,球类游戏等. 对象是构成现实世界的独立单元. 它可以是简单的也可以是复杂的. 复杂的对象可以由简单的对象组成.

现实世界中的对象具有静态属性(或状态)和动态行为(或操作). 例如,每个人都具有诸如姓名,性别,年龄,身高,体重等属性,并且具有饮食,散步,睡觉和学习等行为. 因此,现实世界中的对象通常可以表示为“属性+行为”.

在面向对象的编程中,对象是一个由对象名称,几个属性和一组操作封装的实体. 属性数据是对对象固有特性的描述,操作是对这些属性数据施加的动态行为,它是一系列实现步骤,通常称为方法.

该对象通过封装实现信息隐藏,其目的是防止来自外部的非法访问. 对象和外界通过操作界面连接. 该操作的具体步骤在外部不可见. 操作界面提供了此对象的功能.

进行比喻类比,一个对象就像一个MP3. 使用MP3时,可以通过播放,暂停和录制等按钮来操作MP3. 通过这些按钮,我们可以与MP3进行交互. 我们不需要了解这些交互. 由于这些操作被封装在机器内部,并且其内部电路对我们隐藏,不可见并且无法修改,因此它们是如何具体实现的. 我们只能使用这些按钮来操作MP3.

如果将MP3视为对象,则MP3的颜色,存储容量和产品尺寸等参数等同于对象的属性,而播放,暂停和录制等操作等同于操作对象的按钮及其按钮等效于对象的界面. 在编程中使用对象时,就像通过按钮,通过对象与外部之间的接口来操作MP3一样,不仅使对象的操作简单方便,而且具有很高的安全性和可靠性.

2. 课

c/c++程序设计教程——面向过程分册(第2版)_c程序设计语言 第2版新版 源码_c/c++程序设计教程——面向过程分册(第2版)

在面向对象的编程中,类是具有相同属性数据和操作的对象的集合. 它是一类对象的抽象描述. 例如,小张和老李是个人. 尽管它们的年龄,身高和体重不同,但是它们的基本特征是相同的,并且都具有相似的生理结构和行为. 因此,它们可以统称为“人类”类,而诸如张小和老李之类的每个人都是“人类”类对象的具体实例.

该类是用于创建对象的模板. 该类包含用于描述和定义所创建对象状态的方法. 通常,首先声明该类,然后该类创建其对象. 根据此模板创建的每个具体实例都是一个对象.

类与对象之间的关系是抽象而具体的. 类是抽象许多对象的结果. 对象是类的实例. 例如,“汽车”是一个类,它是从数千辆混凝土汽车中抽象出来的一般概念,而“帕萨特”可以被视为“汽车”类的实例对象.

3. 属性

对象中的数据称为对象的属性,而类中的特征称为类的属性. 例如,眼睛,鼻子,嘴等是“人”类的共同属性,而张三的身高,年龄,性别,职业等是“张三”对象的属性. 不同的类和对象具有不同的属性.

4. 消息

现实世界中的对象不是孤立的实体,它们之间存在各种联系. 同样,在面向对象的编程中,也需要连接对象,称为对象交互.

在面向对象的编程中,当需要对象执行操作时,它会向该对象发送一个请求,通常称为“消息”. 当对象收到消息时,它将调用相关方法并执行相应的操作. 对象之间通过消息进行通信的这种机制称为消息传递机制,可以通过消息传递来实现对象交互.

5. 方法

The

方法是对象可以执行的操作. 该方法包括两部分: 接口和方法主体. 该方法的界面是消息模式,它告诉用户如何调用该方法. 方法主体是实现该操作的一系列步骤,即一段程序代码,该程序代码封装在对象内部,而外部用户则看不见.

消息与方法之间的关系是: 对象从其他对象接收消息时调用相应的方法;否则,对象只能使用适当的方法来响应相应的消息. 因此,消息方式和方法接口应该保持一致,只要方法接口保持不变,方法主体的改变就不会影响方法调用.

1.1.2传统编程及其局限性

c程序设计语言 第2版新版 源码_c/c++程序设计教程——面向过程分册(第2版)_c/c++程序设计教程——面向过程分册(第2版)

计算机编程语言大致经历了三个阶段: 机器语言,汇编语言和高级语言.

1950年代初的程序是用机器语言和汇编语言编写的,程序设计相当麻烦,严重影响了计算机的普及和应用.

Fortran是一种高级编程语言,它出现在1950年代中期,在计算机编程语言的发展历史中具有划时代的意义. 该语言引入了许多重要的编程概念,例如变量,数组,循环,条件分支等,但该语言也发现了一些使用上的缺陷c/c++程序设计教程——面向过程分册(第2版),例如不同部分中相同的变量名称容易混淆.

在1950年代后期,高级语言Algol 60的设计师决定在程序段中隔离变量,并提出了块结构的想法. 块结构由“ Begin ... End”实现,以保护数据.

1969年,E.W. Dijkstra首次提出了“结构化编程”的概念. 他强调从程序结构和风格方面对程序设计进行研究. 结构化程序的程序代码按顺序执行,具有完整的控制结构集,函数之间的参数根据某些规则传递,并且不提倡使用全局变量. 程序设计的主要问题是“设计过程”. 因此,结构化编程仍然是面向过程的编程.

到1970年代末,结构化的编程方法得到了极大的发展,但是由于程序的大小不断增加c/c++程序设计教程——面向过程分册(第2版),数据与处理数据的方法之间的分离常常使程序难以理解且令人不舒服. 由于程序开发,出现了“模块化程序设计”.

模块化编程将软件分为几个部分,可以分别命名和寻址,称为“模块”. 模块化程序设计的思想是``自上而下,逐步完善''. 它的程序结构根据功能分为几个基本模块. 每个模块之间的关系尽可能简单,并且在功能上相对独立. 模块与模块隔离,外部无法访问模块的内部信息,即该信息对模块的外部是不透明的,只能通过严格定义的接口访问模块.

模块化编程设计将数据结构和相应的算法集中在一个模块中,并提出了``数据结构+算法=编程''的编程设计思想. 模块化可以有效地管理和维护软件开发,并且可以有效地分解和处理复杂的问题. 但是,它仍然是一种面向过程的编程方法. 程序员必须始终考虑要处理的数据的格式,并以相同格式对数据进行重新编程或对相同格式的数据执行不同的处理. 该代码不可重用. 很好.

总之,随着计算机技术的推广,人们对计算机软件的功能和性能的要求越来越高,使得传统编程无法满足日益增长的需求,这表现出以下限制.

1. 软件开发效率低

尽管传统的编程语言经历了从低级语言到高级语言的发展,但它们仍然是过程语言. 程序设计仍从句子级别开始. 软件生产缺少可重用的组件. 软件重用问题尚未得到很好的解决,这导致软件生产工程和自动化方面经常受到阻碍.

复杂度也是影响软件生产效率的重要因素. 随着计算机应用范围的越来越广,软件的规模越来越大,需要解决的问题也越来越复杂. 传统的程序设计将数据和数据操作分开,并且对同一数据的操作通常分散在程序的不同部分. 这样,如果一个或多个数据的结构发生更改,则此更改将影响程序的许多部分,甚至遍及整个程序,从而导致许和过程需要重写. 在严重的情况下,整个程序将崩溃. 因此,程序的复杂性是传统编程的一个非常困难的问题,也是传统编程难以取得根本突破的重要原因.

软件维护是软件生命周期中的最后一个环节. 传统编程中将数据与数据操作分离的结构使得维护数据和处理数据的操作过程费时费力,严重影响了软件的生产率.

c/c++程序设计教程——面向过程分册(第2版)_c程序设计语言 第2版新版 源码_c/c++程序设计教程——面向过程分册(第2版)

简而言之,要提高软件的生产效率,必须解决软件重用,复杂性和可维护性的问题,但这是传统编程本身无法解决的.

2. 难以应对海量信息和各种信息

当前,要由计算机处理的数据已经从简单的数字和字符演变成具有多种格式的多媒体数据,例如文本,音频,视频,图形,图像和等,并且所描述的问题已经演变. 从简单的计算问题到复杂的自然和社会现象. 结果,计算机要处理的信息量和信息类型迅速增加,这要求编程语言具有更强大的信息处理能力,这是传统编程无法实现的.

3. 难以适应各种新环境

目前,在计算机应用技术中,并行处理,分布式处理,网络和多机系统应用已成为编程的主流,这要求系统具有一些可以独立处理数据的节点,并且之间存在通信. 节点机制,即通过消息传递进行通信,而传统编程也无能为力.

显然,传统编程已不能满足计算机技术快速发展的需求. 大型软件开发迫切需要一种全新的编程方法来满足需求.

1.1.3面向对象编程的特征

面向对象编程是一种在结构化编程基础上开发的全新编程方法. 其实质是将数据和处理数据的过程抽象为具有特定属性和行为的实体(“对象”). 面向对象编程的最显着特征是封装,继承和多态性.

1. 封装

封装是一种数据隐藏技术. 在面向对象的编程中,可以将数据和与数据相关的操作分组在一起以形成一个类. 该类的部分属性和操作对用户访问是隐藏的,另一部分用作: 用户可以访问该类的外部接口. 该类通过接口与外部进行通信. 用户只能通过类的外部接口使用类提供的服务,而内部特定的实现细节对外界是隐藏的.

封装可以描述如下.

(1)清晰的边界. 对象的所有属性和操作都在此边界内定义.

(2)外部接口. 该界面用于描述对象与其他对象之间的交互,即提供用户在编写程序时可以直接使用的属性和操作.

c/c++程序设计教程——面向过程分册(第2版)_c程序设计语言 第2版新版 源码_c/c++程序设计教程——面向过程分册(第2版)

(3)隐藏的受保护属性和内部操作. 该类提供的功能的实现细节以及内部使用和修改的属性仅不能定义对该对象的类的外部访问.

C ++语言支持通过类进行封装. 在C ++语言中,类是数据和相关操作的封装,可以作为整体使用. 该类中的特定操作详细信息已封装. 使用已定义类的对象时,用户无需了解该类内部的实际工作流程,只要他知道如何通过其外部接口使用它即可. 封装的目的是防止非法访问,它可以合理地控制属性和操作的访问权限,减少程序之间的交互,并减少错误的可能性.

2. 继承

在面向对象的编程中,继承是指创建新类以从现有类中获取现有属性和操作. 现有的类称为基类或父类,通过继承基类创建的新类称为基类的子类或派生类. 从父类生成子类的过程称为类派生.

C ++语言支持单继承和多继承. 通过继承,程序可以在现有类的基础上声明一个新类,即新类是从原始类派生的,新类将共享原始类的属性,还可以添加新属性. 继承有效地实现了软件代码的重用,并增强了系统的可伸缩性.

3. 多态性

在人们的日常生活中,“下棋”,“下棋”,“下棋”,“下棋”等通常统称为“下棋”,即使用相同的名称“下棋”,而不是“下棋”,“下棋”,“下棋”,“下棋”和类似活动.

在面向对象的编程中,多态性意味着相同的函数名称可以具有多个不同的函数体,即一个函数名称可以对应于多个不同的实现部分. 当调用同名函数时,由于环境不同,可能会触发不同的行为和不同的动作. 此功能称为多态. 它使类中具有相似功能的不同功能可以使用相同的功能名称.

多态性不仅表达了人类的思维方式,而且减少了程序中标识符的数量,这方便了程序员编写程序. 多态是面向对象编程的重要机制.

1.1.4面向对象的编程语言

随着面向对象编程方法的发展,出现了许多面向对象的编程语言,例如Object-C,Java,C ++等. 这些语言可以大致分为以下两类.

(1)重新开发一种新的面向对象的编程语言. 最具代表性的语言是Java,Smalltalk和Eiffel. Java语言适合于网络应用程序编程; Smalltalk语言充分体现了面向对象编程的概念;除了封装和继承,埃菲尔语言还集成了其他面向对象的功能,是一种非常好的面向对象的编程语言.

(2)扩展了传统的编程语言,并添加了由面向对象编程功能形成的语言. 这种类型的语言也称为“混合语言”,通常通过在其他语言的基础上添加面向对象编程的功能来开发. 典型的代表是C ++编程语言.

C ++编程语言是一种高效实用的面向对象的混合编程语言,包括两部分: 一部分是C ++语言的基本部分,以C语言为核心,包括C语言的主要内容;另一部分是C ++语言的面向对象部分,是C ++语言对C语言的扩展,增加了面向对象编程的概念和功能. 这使得C ++语言既支持传统的面向过程的程序设计和全新的面向对象的程序设计,又支持C语言的丰富应用程序基础和开发环境. 对于精通C语言的用户而言,学习C ++语言相对容易. 这些是C ++语言成为最流行的面向对象编程语言的主要原因. kh5YtWiNqXH1hxqC / P + LY8bdJXZNLovWzySa + I0peM5tfyyaPtLsFfxQJamFKA + e


本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-262558-1.html



温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html