《C++ 开发从入门到精通》——第2章 C++的重要特质分析2.1 什么是面向对象(object-oriented)

简介:

本节书摘来自异步社区出版社《C++ 开发从入门到精通》一书中的第2章,第2.1节,作者: 王石磊 , 韩海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

第2章 C++的重要特质分析

C++ 开发从入门到精通
C++是继C语言之后的又一门令程序员执爱的编程语言,它不但是C的加强版,而且吸取了传统汇编语言的优点,开创了全新的面向对象的语言世界。从此,软件开发领域彻底进入面向对象时代。由此可以看出,C++的最重要特质是面向对象。除了面向对象外,C++还有很多其他方面的特质,在本章将一一介绍。

本章内容
什么是面向对象(object-oriented)
分析C++的程序结构
必须遵循的编码规范
输入输出基础
算法是程序的灵魂
技术解惑
C++是面向对象,C是面向过程,那么这个对象和过程是什么意思呢
面向对象和面向过程的区别
学好C++的建议

2.1 什么是面向对象(object-oriented)

图片 1 知识点讲解:光盘:视频PPT讲解(知识点)第2章什么是面向对象.mp4

面向对象程序设计即OOP,是Object-Oriented Programming的缩写。由于很多原因,国内大部分程序设计人员并没有很深的OOP以及OOPL理论基础,很多人从一开始学习到工作很多年都只是接触到C/C++、Java等静态类型语言,而对纯粹的OOP思想和作为OOPL基础的Smalltalk以及动态类型语言知之甚少,不知道还有一些可以针对变量不绑定类型的编程语言。

2.1.1 什么是OOP

OOP的许多思想都来之于Simula语言,并在Smalltalk语言的完善和标准化过程中得到更多的扩展和对以前的思想的重新注解。可以说OOP思想和OOPL几乎是同步发展、相互促进的。与函数式程序设计(functional-programming)和逻辑式程序设计(logic-programming)所代表的接近于机器的实际计算模型所不同的是,OOP几乎没有引入精确的数学描叙,而是倾向于建立一个对象模型,它能够近似反映应用领域内的实体之间的关系,其本质是更接近于一种人类认知事物所采用的哲学观的计算模型。

对象的产生通常基于如下两种基本方式:以原型对象为基础产生新的对象和以类为基础产生新对象。

1.基于原型

原型模型本身就是通过提供一个有代表性的对象为基础来产生各种新的对象,并由此继续产生更符合实际应用的对象。而原型—委托也是OOP中的对象抽象,代码共享机制中的一种。

2.基于类

一个类提供了一个或多个对象的通用性描叙。从形式化的观点看,类与类型有关,因此,一个类相当于从该类中产生的实例的集合。在类模型基础上还诞生了一种拥有元类的新对象模型,即类本身也是一种其他类的对象。

2.1.2 面向对象编程

面向对象编程是C++编程的指导思想。使用C++进行编程时,应该首先利用对象建模技术来分析目标问题,抽象出相关对象的共性,对它们进行分类,并分析各类之间的关系;然后再用类来描述同一类对象,归纳出类之间的关系。编程专家在对象建模技术、面向对象编程和知识库系统的基础之上设计了一整套面向对象的方法,具体来说分为面向对象分析(OOA)和面向对象设计(OOD)。对象建模技术、面向对象分析和面向对象设计共同构成了系统设计的过程,如图2-1所示。


027d5111c10142b67bcbb297c2a0f24941194ca8
相关文章
|
21天前
|
开发框架 Linux C语言
C、C++、boost、Qt在嵌入式系统开发中的使用
C、C++、boost、Qt在嵌入式系统开发中的使用
30 1
|
1月前
|
JavaScript 编译器 API
【C++ 函数和过程 进阶篇】全面掌握C++函数返回值:从入门到精通的实战指南
【C++ 函数和过程 进阶篇】全面掌握C++函数返回值:从入门到精通的实战指南
70 1
|
29天前
|
算法 安全 大数据
【C/C++ 随机函数行为】深入探索C++中的随机数:std::random_device与rand的行为分析(二)
【C/C++ 随机函数行为】深入探索C++中的随机数:std::random_device与rand的行为分析
48 0
|
5天前
|
C++
面向对象的C++题目以及解法2
面向对象的C++题目以及解法2
11 1
|
15天前
|
存储 人工智能 机器人
【C++面向对象】C++图书管理系统 (源码)【独一无二】
【C++面向对象】C++图书管理系统 (源码)【独一无二】
|
20天前
|
存储 人工智能 BI
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
【C++面向对象】C++银行卡管理系统(源码+论文)【独一无二】
|
28天前
|
算法 Java C++
【C/C++ 内存知识扩展】内存不足的可能性分析
【C/C++ 内存知识扩展】内存不足的可能性分析
12 0
|
28天前
|
存储 监控 Linux
Linux 使用getrusage系统调用获取cpu信息:一个C++实例分析
Linux 使用getrusage系统调用获取cpu信息:一个C++实例分析
48 0
|
28天前
|
存储 算法 C语言
【C/C++ 链表结构】探索链表迭代器:C++实现的深入分析与优化策略
【C/C++ 链表结构】探索链表迭代器:C++实现的深入分析与优化策略
36 0
|
29天前
|
算法 IDE Java
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
【软件设计师备考 专题 】面向对象程序设计语言:C++、Java、Visual Basic和Visual C++
40 0

热门文章

最新文章