“带类的C”:从实验性扩展到语言设计



C++的诞生:一段跨越时空的史诗,起点并不是一次从零开始的语言设计,而是贝尔实验室工程师比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup)为解决大型系统开发问题,对C语言进行持续扩展😎的结果。它吸收了Simula的面向对象思想,又保留C语言在效率、可移植性和底层控制方面的优势,最终从“带类的C”发展为独立的通用编程语言。



类机制解决了数据和操作分离的问题。一个类可以把内部状态与相关函数放在同一抽象边界内🎨,并通过public、protected和private控制访问范围。构造函数与析构函数则把资源初始化和释放动作纳入对象生命周期,这为后来的RAII思想奠定了基础。



早期设计并没有把“面向对象”当作唯一目标。斯特劳斯特鲁普更重视多种编程范式并存:开发者可以继续使用C式过程编程,也可以使用类和继承进行抽象,还可以利用模板、运算符重载等机制表达通用算法。正是这种兼容并包的方向,使C++后来既能服务底层系统,也能支持规模庞大的应用软件。



为什么C++没有选择彻底抛弃C



C++保留C语言基础,首先是因为C已经深度嵌入操作系统、编译器、嵌入式设备和系统库。彻💡底改写这些软件不仅成本极高,💡还可能破坏经过长期验证的底层接口。兼容与渐进式迁移因此成为现实而务实的选择。



举报/反馈