C++ 简介


2022年7月17日, Learn eTutorial
2191

C++ 是一种通用的编程语言,它是作为 C 语言的扩展而开发的,采用了面向对象的范式。它是一种命令式的编译型语言。C++ 是一种中级语言,其优点是既能编写底层应用程序(如内核、驱动程序),也能编写高级应用程序(如游戏、桌面应用、GUI 等)。C 和 C++ 的基本语法和代码结构是相同的。

C 和 C++ 的相似之处在于:

  • 两种语言的语法相似。
  • 两种语言的代码结构相同。
  • 两种语言的组合方式相似。基本语法几乎完全相同。C 的几乎所有运算符和关键字都存在于 C++ 中,并且作用相同。
  • C++ 的语法比 C 更高级一些,但基本语法是相同的。
  • 两者的基本内存模型都非常接近硬件。
  • 栈、堆、文件空间和静态变量这些术语在两种语言中是相同的。

C 和 C++ 的区别在于:

C C++
在 1969 年至 1973 年间,Dennis Ritchie 开发了 C 语言。 1. Bjarne Stroustrup 于 1979 年开发了 C++。
C 不支持多态性、封装和继承,也不支持面向对象编程。 2. 作为一种面向对象的编程语言,C++ 支持多态性、封装和继承。
C 是 C++ 的子集。 3. C++ 被认为是 C 的超集。
C 语言包含 32 个关键字。 4. C++ 包含 63 个关键字。
对于代码开发,C 支持过程式编程。 5. 由于 C++ 同时支持过程式和面向对象的编程范式,因此被称为混合语言。
作为一种过程式编程语言,C 将数据和函数分离开来。 6. 在 C++ 中,数据和函数以对象的形式封装在一起。
C 完全不支持信息隐藏。 7. 数据通过封装被隐藏,以确保数据结构和运算符按预期使用。
C 支持内置数据类型,并且 C 是一种函数式语言。 C++ 支持内置和用户自定义的数据类型,它是一种面向对象的语言。
C 被称为函数式编程语言,因为 C 是一种过程式编程语言。 C++ 是一种对象驱动的语言,因为它是面向对象编程。
在 C 中,不支持函数和运算符的重载。 C++ 支持函数和运算符重载。
C 中不存在命名空间特性。 C++ 中使用命名空间来避免名称冲突。
C 使用的头文件是 stdio.h。 C++ 中使用的头文件是 iostream.h。
C 不支持引用变量,也不支持虚函数和友元特性。 C++ 支持引用变量,并支持虚函数和友元函数。
C 主要关注方法或过程。 C++ 主要关注数据,而不是方法或过程。
C 提供了 malloc() 和 calloc() 函数用于动态内存分配,以及 free() 函数用于释放内存。 C++ 提供了 new 内存分配和 delete 内存释放运算符。

为什么选择 C++?

C++ 是世界上最受欢迎的编程语言之一,它被用于当今的操作系统、图形用户界面和嵌入式系统中。C++ 是一种面向对象的编程语言,它为程序提供了明确的结构,并允许代码重用,从而降低了开发成本。此外,它具有可移植性,可用于开发适用于多个平台的应用程序。C++ 有趣且易于学习,C++ 的一个重要特点是它与 C# 和 Java 非常相似,这使得程序员可以轻松地切换到 C++ 或从 C++ 切换到其他语言。

C++ 的主要特性

Key Features of C++
  1. 它很简单:它是一种简单的语言,因为它拥有全面的库支持系统、广泛的数据类型,以及将程序分解为逻辑单元和组件的能力。
  2. 平台相关但机器无关:虽然 C++ 的可执行文件是机器无关的,但它们并非平台无关。例如,为 Linux 生成的程序无法在 Windows 上运行。
  3. 它是一种中级语言:它是一种中级语言,因为我们可以用它来编写系统级程序(驱动程序、内核、网络等),也可以用它来创建大型用户应用程序(媒体播放器、Photoshop、游戏引擎等)。
  4. 它拥有丰富的库支持:包括第三方库(如 Boost 库)和标准的内置数据结构、算法等,以实现快速高效的开发。C++ 语言为库开发者提供了大量的内置函数。这加快了开发速度并节省了时间。让我们来看一些 C++ 头文件及其提供的功能。
    • <iostream>: 它包含了 C++ 的标准输入输出函数。
    • <iomanip>: 包含数据流格式化流、操纵符。
    • <cmath>: 包含数学库中的函数。
    • <cstdlib>: 提供用于将数字转换为文本(反之亦然)、分配内存、生成随机数以及其他有用功能的工具。
    • <ctime>: 包含了时间和日期操作函数。
    • <fstream>: 包含了从磁盘文件进行输入和向磁盘文件进行输出的函数。
    • <memory>: 包含 C++ 标准库用于为 C++ 标准库容器分配内存的类和函数。
    • <iterator>: 存在用于访问存储在 C++ 标准库容器中数据的类。
    • <algorithm>: 提供了处理存储在 C++ 标准库容器中数据的工具。
  5. 执行速度:C++ 应用程序运行速度极快。它是一种高度程序化的编译型语言。较新的语言包含更多内置的默认功能,如垃圾回收、动态类型等。这些会减慢程序的整体执行速度。C++ 之所以速度快,是因为它没有任何额外的处理开销。由于其快速的编译和执行,C++ 是一种快速的语言。此外,它提供了大量的数据类型、函数和运算符。
  6. 直接内存访问和指针:C++ 具有指针功能,允许用户直接修改存储地址。这使得底层编程更加容易。
  7. 面向对象:该语言区别于 C 的一个关键特性是它是面向对象的。C++ 对面向对象编程的支持使程序变得灵活且易于管理。也可以用它来创建大型应用程序。
  8. 内存管理:C++ 支持动态内存分配。已分配的 RAM 随时可以被释放。此外,C++ 具有动态内存管理策略。
  9. 指针:指针是一个变量,用于存储另一个变量的地址。指针指示变量的内存位置。C++ 支持指针,并为需要内存访问的问题提供了许多解决方案。
  10. 它是基于编译器的:C++ 是一种使用编译器的编程语言。任何 C++ 程序都必须经过编译才能运行。C++ 程序首先由编译器编译,然后才能执行。

C++ 的历史

1979 年,一位名叫 Bjarne Stroustrup 的计算机科学家在贝尔实验室开始研究“C with Classes”,它是 C 的一个超集。在撰写博士论文期间,他接触到了 Simula 这种语言,并发现它具有对大型软件实现非常有用的特性,但速度很慢。于是,他着手创建一种既像 C 一样快速高效,又具备 Simula 特性的语言。

1982 年,他开始开发“C with Classes”的后继者,并将其命名为“C++”,其中“++”是增量运算符。除此之外,还添加了许多其他功能,包括虚函数、单行注释、引用、常量以及运算符和方法重载。