C++ 简介
C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。
面向对象程序设计
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:
-
封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。
-
继承(Inheritance):继承是从已有类中派生出新类,新类具有已有类的属性和方法,并且可以扩展或修改这些属性和方法。这样可以提高代码的复用性和可扩展性。
-
多态(Polymorphism):多态是指同一种操作作用于不同的对象,可以有不同的解释和实现。它可以通过接口或继承实现,可以提高代码的灵活性和可读性。
-
抽象(Abstraction):抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。
标准库
标准的 C++ 由三个重要部分组成:
-
核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
-
C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
-
标准模板库(STL),提供了大量的方法,用于操作数据结构等。
ANSI 标准
ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。
由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。
学习 C++
学习 C++,关键是要理解概念,而不应过于深究语言的技术细节。
学习程序设计语言的目的是为了成为一个更好的程序员,也就是说,是为了能更有效率地设计和实现新系统,以及维护旧系统。
C++ 支持多种编程风格。您可以使用 Fortran、C、Smalltalk 等任意一种语言的编程风格来编写代码。每种风格都能有效地保证运行时间效率和空间效率。
C++ 的使用
C++ 语言在许多行业和领域都有广泛应用,包括:
-
游戏开发:C++ 是游戏开发领域中最常用的编程语言之一,因为它具有高效的性能和直接控制硬件的能力。许多主要的游戏引擎,如 Unreal Engine 和 Unity,都使用 C++ 编写。
-
嵌入式系统开发:C++ 可以在嵌入式系统中发挥重要作用,如智能手机、汽车、机器人和家电等领域。由于嵌入式系统通常具有严格的资源限制和实时要求,因此 C++ 的高效性能和内存控制功能非常有用。
-
金融领域:C++ 在金融领域中被广泛应用,如高频交易、算法交易和风险管理等领域。由于这些应用程序需要高效的性能和对硬件的直接控制,C++ 语言是一个合适的选择。
-
图形图像处理:C++ 可以用于开发图形和图像处理应用程序,如计算机视觉、计算机图形学和人工智能领域。由于这些应用程序需要高效的计算能力和对硬件的控制,因此 C++ 是一个很好的选择。
-
科学计算和数值分析:C++ 可以用于开发科学计算和数值分析应用程序,如数值模拟和高性能计算等领域。由于这些应用程序需要高效的计算能力和对硬件的直接控制,C++ 语言是一个很好的选择。
标准化
发布时间 |
通称 |
备注 |
---|---|---|
2020 |
C++20, C++2a |
ISO/IEC 14882:2020 |
2017 |
C++17 |
第五个C++标准 |
2017 |
coroutines TS |
协程库扩展 |
2017 |
ranges TS |
提供范围机制 |
2017 |
library fundamentals TS |
标准库扩展 |
2016 |
concurrency TS |
用于并发计算的扩展 |
2015 |
concepts TS |
概念库,用于优化编译期信息 |
2015 |
TM TS |
事务性内存操作 |
2015 |
parallelism TS |
用于并行计算的扩展 |
2015 |
filesystem TS |
文件系统 |
2014 |
C++14 |
第四个C++标准 |
2011 |
- |
十进制浮点数扩展 |
2011 |
C++11 |
第三个C++标准 |
2010 |
- |
数学函数扩展 |
2007 |
C++TR1 |
C++技术报告:库扩展 |
2006 |
- |
C++性能技术报告 |
2003 |
C++03 |
第二个C++标准 |
1998 |
C++98 |
第一个C++标准 |
C++ 是一种广泛使用的程序设计语言,它最早由 Bjarne Stroustrup 在 1983 年开发出来, 并且在同年正式命名为 C++. 这种语言是对 C 语言的一种扩展,旨在提供更多的功能和改进,同时保持与 C 的兼容性.
基础特性
C++ 是一种支持多范式的语言,这意味着它能够支持多种编程风格,包括但不限于:
-
过程化程序设计: 允许开发者以一系列过程的形式组织代码。
-
数据抽象化: 支持封装数据和方法,以提高安全性和可靠性。
-
面向对象程序设计: 提供类和对象的概念,支持封装、继承和多态。
-
泛型程序设计: 通过模板支持编写可应用于多种数据类型的代码。
语言设计原则
C++ 的设计遵循了一系列的原则,旨在使语言既强大又灵活:
-
高效且可移植: 设计成静态类型检查的语言,以保证代码的高效性和可移植性。
-
广泛的程序设计风格支持: 支持多种程序设计风格,提供程序设计者更多的选择。
-
与 C 兼容: 保持与 C 的兼容性,以确保从 C 到 C++ 的平滑过渡。
-
避免平台限定的特性: 不使用会带来额外开销的特性,确保语言简洁高效。
应用领域
C++ 因为其高效性和灵活性,在多个领域有着广泛的应用:
-
系统级编程: 包括操作系统、嵌入式系统和驱动程序等。
-
应用程序开发: 包括桌面应用程序、移动应用程序以及 Web 应用程序。
-
游戏开发: 高性能和底层访问能力使其成为游戏开发的首选语言之一。
-
科学计算: 在需要大量数据处理和复杂计算的科学计算领域也有广泛应用。
编程技巧
在使用 C++ 进行编程时,开发者可以运用一些技巧来提高代码的质量和效率:
-
使用
const
关键字: 用来声明常量,防止意外修改。 -
使用指针: 虽然强大但也需要谨慎使用,以确保内存访问的安全性。
-
使用引用: 避免在传递大对象或数组时的复制开销。
-
使用 STL 库: 提供了大量的数据结构和算法,提高了代码的效率和可读性。
-
异常处理: 增强了程序的健壮性和安全性.