第一章 预备知识 C++ Primer Plus C++ Primer Plus 2018_2_2

个人总结如下:

本章内容包括:

  1. C语言 C++发展历史、基本原理。
  2. 过程性编程、面向对象编程。
  3. C++是如何在C语言的基础上添加面向对象的概念的。。
  4. C++是如何在C语言的基础上添加泛型编程的概念的。


知识点:


1 简要介绍:
C语言特点---高效、简洁、快速、可移植性--- 面向过程
C++特点---继承C的特点 具有 对象、类、数据隐藏、 封装、多态、继承 等新特性,以及另一种编程方法: 泛型编程 --- 面向对象
------C++ 面向对象 目标:抽象通用概念 和 尽可能地重用代码

2 简史:
1970 年,Bell实验室的 D.Ritchie K.Thompson 共同发明了 C语言 ,初衷是用它编写UNIX系统程序,是UNIX的“副产品”。
1979年, Bjame Sgoustrup 到了Bell实验室,开始从事将C改良为带类的C( C with classes )的工作。 1983 年该语言被正式命名为 C++

3 基本原理:

(1)C语言

C语言 = 数据 + 算法 --- 数据:程序要使用和处理的信息 算法:程序处理数据的方法
因此 C语言是 面向过程 的语言,强调的编程的算法方面。
C语言使用 自顶向下 的原则和 结构化编程 的方法,来实现一个程序的编写。本质上反映了C语言的 面向过程 思想, 即根据执行的操作来构思一个程序 当然,为了更好地实现 “将分支限制为一个行为良好的结构” 这种 结构化编程 方法,C语言做了一些准备,如:for、while、do...while循环、if...else等。
举例说明上述原则和方法:将最大块的清理屋子这件事情,分成几个小块:整理书桌、书橱、床铺、地面,这几个小块不够细到让自己轻易完成,则继续分成更小的模块,以整理书桌为例,整理桌面、整理抽屉、摆放整齐,顺序执行。显然,这是一种自顶向下、结构化的体现。
举例说明:
数据 算法
几片茶叶 从抽屉里拿取放入杯中
一杯糖 +向杯中逐渐加糖
白开水 向杯中倒入白开水并搅拌
... ....
||
程序
一杯热茶
数据 + 算法 = 程序


(2)C++

C++ 面向对象 的编程,强调的是 数据 ,其理念是 设计 与问题本质特性相对应的 数据格式

面向对象不像面向过程那样,试图让问题满足语言的过程性方法,而是试图让语言满足问题的要求。换句说,C语言不是直接根据问题就能用的,她需要一步步转换,即把一个总的问题转换一个个可以解决的小的过程才行。但是,C++就有所不同。

C++是按照人的思维直接来解决的问题的,不需要一步步地转换。如果你想解决一个实际问题,你需要做的就是“ 找到与该问题本质特性相对应的数据格式 ”就可以了。 你只需要找到解决该问题的相应数据,并根据这些数据提取出相应特性,构建出一个新的数据格式,然后利用这个通用的数据格式解决实际问题就好了 。说白了,这就是C++所讲的:

是一种规范,描述了上述的新型 数据格式 对象 则是根据这种数据格式创建出来的 数据结构 。这样的话, 规定了可以使用 哪些数据来表示对象 以及可以 对这些数据执行哪些操作 。也就是类的属性和方法规定了其实例化的对象具有哪些属性和方法。
(可这样近似理解:
C语言结构体结构体定义的变量
C++类实例化的对象
抽象(记忆时,以此为准)数据格式元素



举例说明:
条件:已知公司人员的个人信息
问题:创建一个公司人员信息管理系统,可以增删改查
解决:
I 通过已知条件可以提取公司人员的通用特征,如工号、姓名、性别、年龄、特长等等。
------类的属性
II 通过问题要求可知,需要对数据做这些操作:根据工号查询其相应信息、添加新的工作人员、移除某工作人员、修改某工作人员的个人信息等。
------类的方法
III 知道了数据的属性以及要对这些数据做什么操作,那么我们就可以据此创建一种新的数据格式---即类,然后通过这种数据格式定义出元素,也就是通过类来实例化对象,接着对该对象进行一系列操作来满足问题需求。本质上还是先 根据数据的属性和对其的相应操作 创建 一个满足问题要求的 。这些数据其实就是是从实际问题中一个个对象。
------创建类

Note:

The programming philosophy underlying classes is OOP(面向对象)。

C++特点---继承C的特点 具有 对象、类、数据隐藏、 封装、多态、继承 等新特性,以及另一种编程方法: 泛型编程 --- 面向对象
------C++ 面向对象 目标:抽象通用概念 和 尽可能地重用代码

面向对象不仅仅是将数据和方法结合并为 定义,还有助于创建 可重用 的代码,这将减少大量工作。而且, 信息隐藏 可以保护数据,使其免遭不适当的访问。 多态 允许对运算符和函数创建多个定义,通过编程上下文来确定使用哪个定义。 继承 可以使用旧类派生出新类。OOP不是将重点放在任务上,而是放在 表示概念 上。

OOP编程:有时不一定使用自上而下的编程方法,而是使用自下而上的编程方法。
------自下而上:从低级组织(类)到高级组织(程序)的处理过程。

泛型编程:OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。OOP更像是一个管理大型项目的工具,而 泛型编程提供了执行常见任务(如:对数据进行排序和合并链表)的工具 。(具体内容见 C++ Primer Plus 第六版 第一章的1.2.4和第十六章)






























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值