C++学习笔记001
前言
今天开始看《C++ Primer Plus》这本书 在看这本书的过程中,学习到了一些之前没有学过或者是理解的不彻底的地方,在这记录一下。C++融合了3种不同的编程方式:C语言代表的过程性语言、C++在C语言基础上添加的类代表的面向对象语言、C++模板支持的泛型编程。
使用C++的原因之一是为了利用其面向对象的特性。
C所遵循的旧的理念。一般来说,计算机语言要处理两个概念——数据和算法。
数据是程序使用和处理的信息,而算法是程序使用的方法。
C语言与当前最主流的语言一样,在最初面世时也是过程性(procedural)语言,这意味着它强调的是编程的算法方面。
从概念上说,过程化编程首先要确定计算机应采取的操作,然后使用编程语言来实现这些操作。
为了解决“意大利面条式编程”的问题,计算机科学家开发了一种更有序的编程方法——结构化编程(structured programming)。
自顶向下(top-down)的设计原则,理念是将大型程序分解成小型、便于管理的任务。直到将程序划分为小型的、易于编写的模块。
面向对象编程(OOP)强调的是数据,试图让语言来满足问题的要求。其理念是设计与问题的本质特性相对应的数据格式。
类是一种描述这种新型数据格式的规范,对象则是根据这种规范构造的特定数据结构。
通常类规定了可使用哪些数据来表示对象以及对这些数据执行哪些操作。
OOP编程并不仅仅是将数据和方法合并为类定义。例如,OOP还有助于创建可重用的代码,这将减少大量的工作。信息隐藏可以保护数据,使其免遭不适当的访问。多态让您能够为运算符和函数创建多个定义,通过编程上下文来确定使用哪个定义。继承让您能够使用旧类派生出新类。正如接下来将看到的那样,OOP引入了很多新的理念,使用的编程方法不同于过程性编程。它不是将重点放在任务上,而是放在表示概念上。有时不一定使用自上向下的编程方法,而是使用自下向上的编程方法。
泛型编程(generic programming)是C++支持的另一种编程模式。它与OOP的目标相同,即使重用代码和抽象通用概念的技术更简单。不过OOP强调的是编程的数据方面,而泛型编程强调的是独立于特定数据类型。它们的侧重点不同。OOP是一个管理大型项目的工具,而泛型编程提供了执行常见任务(如对数据排序或合并链表)的工具。
泛型(generic)指的是创建独立于类型的代码。C++的数据表示有多种类型—— 整数、小数、字符、字符串、用户定义的、由多种组成的复合结构。例如,要对不同类型的数据进行排序,通常必须为每种类型创建一个排序函数。泛型编程需要对语言进行扩展,以便可以只编写一个泛型(即不是特定类型的)函数,并将其用于各种实际类型。C++模板提供了完成这种任务的机制。
参数(argument)只是计算机人员用来表示从一个函数传递到另一个函数的信息。
在源代码中,一行代码中不可分割的元素叫作标记(token)