第一章 准备常识

1、C++简介

C++交融了3种不同的编程形式:

  • C语言代表的过程性语言
  • C++在C语言根底上增加了类代表的面向对象语言
  • C++模板反对的泛型编程

C++继承C语言高效、简洁、疾速和可移植性的传统。

2、C++简史

2.1 C语言编程:过程性语言

Bell实验室的Dennis Ritchie为了设计开发UNIX的通用性、可移植性等,在旧语言的根底上开发了C语言。

汇编语言依赖于计算机的外部机器语言,间接对硬件进行操作。

数据:程序应用和解决的信息。

算法:程序应用的办法。

C语言是 过程性语言 ,强调编程的算法方面。一种结构化的编程形式。

C语言的新准则:自顶向下设计,现实:将大型程序拆分小型、便于管理的工作。

2.2 面向对象编程

过程性语言(C语言)强调算法OOP(C++、Java等)强调数据

OOP不像过程性编程,其理念是设计与问题的实质个性绝对应的数据格式。区别如下:

  • 过程性语言(让问题来满足语言)
  • OOP编程(让语言来满足问题)

在C++中,类是一种标准,形容了新型数据格式,对象则依据类标准结构的特定数据结构

类规定了可应用哪些数据来示意对象以及能够对这些数据执行哪些操作

OOP程序设计办法:先设计类(能够明确示意程序要解决的货色),而后设计应用类的对象的程序

低级组织(如类)高级组织(如程序)的处理过程叫作 自下而上 的编程思维。

类定义 = 数据 + 办法

OOP能够创立可重用的代码,缩小大量的工作,信息暗藏能够爱护数据,使其免遭不适当的拜访。

不同的环境(Windows和Macintosh)下提供编程的类库,能够不便地重用和批改现有的、通过认真测试的代码。

2.3 C++和泛型编程

泛型编程(generic programming)是C++反对的另一种编程模式。与OOP指标零碎。

术语:泛型(指创立独立于类型的代码)

OOP与泛型编程的区别:

  • OOP强调编程的数据方面,是治理大型项目的工具
  • 泛型编程强调独立于特定数据类型,提供执行常见工作(如对数据排序或合并链表)的工具。

C++泛型编程须要对语言进行扩大,以便于能够只编写一个泛型(即不是特定类型的)函数,并将其用于各种理论类型

3、可移植性和规范

C++是C语言的超集,任何无效的C程序都是无效的C++程序。

3.1 可移植性的两个阻碍

  • 硬件:分块搁置模块,通过重写模块,最大限度升高可移植性问题。
  • 语言上的差异性:国内组织定义了C语言规范、定义了C++99、C++11、C++14等规范。

3.2 C++的二重性

  • OOP提供了高级形象
  • C提供了低级硬件拜访

C++既能够通过OOP进行形象,也可实现相似C一样的对硬件拜访的操作。

4、程序创立的技巧

4.1 编程步骤

更多编译细节请浏览【编译原理】

4.2 常见的编译器

  • Linux/UNIX : GNU gcc/g++
  • Windows :软件IDE
  • Mac OS : Xcode自带g++和clang

GitHub地址:https://github.com/SolerHo/cp...