C++
通用高階程式語言 / 維基百科,自由的 encyclopedia
親愛的 Wikiwand AI, 讓我們通過簡單地回答這些關鍵問題來保持簡短:
你能列出最重要的事實和統計數據嗎 C++?
為 10 歲的孩子總結這篇文章
C++是一种被广泛使用的计算机程序设计语言。它是一种通用程式設計語言,支援多重编程范式,例如過程化程序設計、面向对象程序設計、泛型程式設計和函数式程序設計等。
编程范型 | 多范型:面向对象编程,過程化編程,泛型编程 |
---|---|
設計者 | 比雅尼·斯特劳斯特鲁普 |
发行时间 | 1983年,41年前(1983) |
当前版本 |
|
型態系統 | 静态类型,强类型,不安全 |
實作語言 | C++、C 等 |
文件扩展名 | .c .cc .cpp .cxx .c++(源文件) .h .hh .hpp .hxx .h++(头文件) |
網站 | isocpp |
主要實作產品 | |
Embarcadero C++Builder, GCC, Intel C++ Compiler, Microsoft Visual C++, LLVM Clang | |
衍生副語言 | |
ISO/IEC 14882:1998, ISO/IEC 14882:2003, ISO/IEC 14882:2011, ISO/IEC 14882:2014, ISO/IEC 14882:2017 | |
啟發語言 | |
Ada 83, ALGOL 68, C, CLU, ML, Simula | |
影響語言 | |
Ada 95, Aikido, C99, C#, Clojure, D, Dao, Falcon, Java, Lua, Perl, PHP |
比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数、运算符重载、多繼承、标准模板库、异常处理、运行时类型信息、命名空間等概念逐漸納入標準草案。1998年,國際標準組織頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2020。ISO/IEC 14882通称ISO C++。ISO C++包含了主要包含了核心语言和标准库的规则。尽管从核心语言到标准库都有显著不同,ISO C++直接正式(normative)引用了ISO/IEC 9899(通称ISO C),且ISO C++标准库的一部分和ISO C的标准库的API完全相同,另有很小一部分和C标准库略有差异(例如,strcat
等函数提供对const
类型的重载)。这使得C和C++的标准库实现常常被一并提供,在核心语言规则很大一部分兼容的情况下,进一步确保用户通常较容易把符合ISO C的源程序不经修改或经极少修改直接作为C++源程序使用,也是C++语言继C语言之后流行的一个重要原因。
作为广泛被使用的工业语言,C++存在多个流行的成熟实现:GCC、基于LLVM的Clang以及Visual C++等。这些实现同时也是成熟的C语言实现,但对C语言的支持程度不一(例如,VC++对ANSI C89之后的标准支持较不完善)。大多数流行的实现包含了编译器和C++部分标准库的实现。编译器直接提供核心语言规则的实现,而库提供ISO C++标准库的实现。这些实现中,库可能同时包含和ISO C标准库的共用实现(如VC++的msvcrt);而另一些实现的ISO C标准库则是单独于编译器项目之外提供的,如glibc和musl。C++标准库的实现也可能支持多种编译器,如GCC的libstdc++库支持GCC的g++和LLVM Clang的clang++。这些不同的丰富组合使市面上的C++环境具有许多细节上的实现差异,因而遵循ISO C++这样的权威标准对维持可移植性显得更加重要。现今讨论的C++语言,除非另行指明,通常均指ISO C++规则定义的C++语言(虽然因为实现的差异,可能不一定是最新的正式版本)。
值得注意,和流行的误解不同,ISO C和ISO C++都从未明确要求源程序被编译(compile),而仅要求翻译(translate),因此C和C++并不是所谓的编译型语言。技术上,实现C和C++程序的单位是翻译单元(translation unit)。作为对比,Java语言规范中就明确要求Java程序被编译实现,明确存在编译单元(compilation unit)。实际上C和C++也存在REPL形式的解释器实现,如CINT和Cling。但因为传统上C和C++多以编译器实现,习惯上仍有一些混用,甚至至今仍出现在ISO C++某节标准库条款的标题 (页面存档备份,存于互联网档案馆)上。
传统上,C++语言被视为和C语言实现性能相近的语言,强调运行时的高效。根據《C++編程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間[2]。