中国青年报
C++的早期起点发生在贝尔实验室内部,直接背景是复杂系统的软件开发。斯特劳斯特鲁普当时需要构建与分布式系统相关的模拟程序,程序规模增长后,单纯依赖C语言的过程式组织方式🔑,会让模块之间的关系、数据结构的边界和代码维护变得更加困难。
C++保留C语言基础,首先是因为C已经深度嵌入操作系统、编译器、嵌入式💡设备和系统库。彻底改写这些软件不仅成本极高,还可能破坏经过长期验证的底层接口。兼容🔥与渐进式迁移因此成为现实而务实的选择。
现代C++的发展并没有改变最初的核心矛盾:既要保留性能和控制能力,又要提高大型软件的安全性、表达力和可维护性。C++11是一次重要转折,引入自动类型推导、范围for、lambda表达式、移动语义、右值引用、智能指针、并发库等能力,使资源管理和泛型编程更加成熟。
早期设计并没有把“面向对象”当作唯一目标。斯特劳斯特鲁普更重视多种编程范式并存:开发者可以继续使用C式过程编程,也可以使用类和继承进行抽象,还可以利用模板、运算符重载等机制表达通用🌅算法。正是这种兼容并包的方向,使C++后来既能服务底层系统🎵,也能支持规模庞大的应用软件。
1983年,“带类的C”改名为C++,名称中的“++”来自C语言的递增运算符,含义接近“C的进一步发展”。这个名字既表达了语言与C之间的继承关系,也暗示了它并非简单复制C,而是在原有基础上增加新的抽象工具。
C++的名称变化也对应着设计目标的变化。早期工作主要是验证类机制能否改善C程序,后续设计则逐渐加入虚函数、函数重载、引用、内联函数和更完善的💯类型系统等能力。语言不再只是“C加上类”,而是开始形成一套具有自身表达方式的编程体系。