C++ 四十年演进史与命名空间基础
结束了 C 语言的学习,我们开始探索 C++ 这门更强大的编程语言。C++ 在 C 语言的基础上发展而来,既保留了其高性能特性,又增加了面向对象和泛型编程等现代化功能。经过数十年发展,C++ 通过命名空间解决了标识符冲突问题,提供了丰富的标准模板库,C++11 及后续标准更带来了革命性改进。
一、C++ 发展历程概览
纵观 C++ 的发展史,可以概括为以下几个关键节点:
1. 起源:C with Classes (1979-1983)
- 核心人物:本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)
- 初衷:在 C 语言的高效和底层控制能力基础上,增加面向对象和泛型编程机制,以应对大规模软件工程的复杂性。
- 关键特性:引入了类、基本继承、内联函数和访问控制等核心概念。
2. 早期发展:正式命名 (1983-1989)
- 更名:1983 年,语言正式更名为 C++。"++"是 C 语言的自增运算符,象征着对 C 语言的超越。
- 特性丰富:增加了虚函数、函数和运算符重载、引用、常量等,奠定了其特色功能。
- 推广:1985 年,发布了经典著作《The C++ Programming Language》,同年首个商业编译器 C Front 发布,推动了语言的普及。
3. 标准化与成熟 (1990-1998)
- 标准启动:为避免不同编译器导致的分裂,ANSI 和 ISO 于 1990 年联合启动 C++ 标准化进程。
- STL 融合:标准模板库 (STL) 被纳入标准草案,提供了泛型的容器、迭代器和算法,极大提升了代码复用性。
- 首个国际标准:C++98 于 1998 年正式发布,统一了语言规范,确立了模板、异常处理等现代特性,标志着 C++ 成为成熟的工业级语言。
4. 现代化浪潮 (2011-至今)
- 里程碑:C++11 被视为现代 C++ 的开端,是一次翻天覆地的更新。
- 持续演化:
- C++14:对 C++11 的小幅度增强和缺陷修复;
- C++17:引入结构化绑定、
std::filesystem、std::variant等实用特性; - C++20:引进概念、协程等改变编程范式的强大特性;
- C++23:进一步完善标准库支持和语言特性。
二、学习资源推荐
参考网站
- https://legacy.cplusplus.com/reference/:内容呈现以头文件形式,较易使用,但已停止更新,仅支持到 C++11。
- https://zh.cppreference.com/w/cpp 和 https://en.cppreference.com/w/:当前官方维护的网站,内容详实,建议优先查阅英文版。
推荐书籍
- 《C++ Primer》:系统讲解 C++ 语法的权威著作,适合入门引导及后期作为语法字典查阅。
- 《STL 源码剖析》:深入剖析 STL 实现,揭示设计精髓,建议在有一定基础后阅读。
- 《Effective C++》:提炼了 55 条高效使用准则,适合中后期结合工作经验反复研读。


