广州日报
斯特劳斯特鲁普当时参与大型分布式系统研究,需要同时面对网络通信▶️、操作系统接口和复杂数据结构。模拟程序尤其需要描述大量相互关联的对象,例如网络节点、设备状态和通信过程。传统语言可以完成这些任务,却难以让🌈程序结构自然对应现实问题。
这些特性并非一次性完成。设计者💡需要在表达能力、编译器复杂度、运行🔑效率和既有C代码兼容性之间反复权衡。C++早期的发展更像一组持续加入的工程决策,而不是预先写好全部规则后一次发布的产品。
“C++”这个名称来自C语言中的自增运算符“++”。在C语言里,变量执行一次自增后会增加一个单位,因此C++可以被理解为“比C更进一步”。这个名字既体现了语言与C的继承关系,🌺也暗示了它不是另起炉灶,而是在原有语言体系上继续发展。
C++的诞生并不等于面向对象编程的终点,而是为后续多种编程方式提供了共同平台🌟。早期C++因类、继承和多态受到关注,后来模板和标准模板库的发展,又使泛型编程成为语言的重💯要组成部分。
资源管理是C++区别🤔于许多高级语言的另一条主线。构造函数和析构函数让对象能够在进入和离开作用💎域时自动执行资源管理逻辑,这种思路后来形成RAII。文件、锁、内存和数据库连接等资源,都可以通过对象生命周期得到更可靠的控制。