C++批判:1990年代编程语言趋势分析

需积分: 0 0 下载量 97 浏览量 更新于2025-01-02 收藏 352KB PDF 举报
"C++??(C++批判)英文第三版是Ian Joyner撰写的一本对C++编程语言及其发展趋势进行批判分析的书籍。书中涵盖了20世纪90年代的编程语言趋势,并针对C++的一些特定特性提出了批评意见。Joyner在书中明确表示,他的观点并不代表其雇主的立场。本书内容包括对编程语言角色的探讨,如编程的本质、沟通与抽象、精确性、工具集成、正确性、类型系统、冗余检查、封装、安全性和礼仪、实现与部署等多方面的问题。同时,书中对C++的虚拟函数、全局分析、类型安全链接、函数重载、继承的本质、多重继承、虚拟类、模板、名称重载、嵌套类、全局环境、多态性与继承、类型转换、运行时类型信息(RTTI)、新的类型转换、Java与类型转换、成员访问运算符以及匿名参数和无名构造函数等方面进行了深入的批判和讨论。" 《C++批判》第三版由Ian Joyner撰写,是一本对C++语言及其在90年代编程语言趋势中地位进行深入剖析的著作。Joyner在此书中的观点纯属个人见解,不涉及其雇主的立场。这本书主要分为两大部分:一是对编程语言的角色进行探讨,二是针对C++的具体批评。 首先,书中阐述了编程语言在软件开发中的核心作用,包括编程的本质,强调编程不仅是编写指令,更是一种沟通和抽象的手段。此外,Joyner还强调了精确的表示形式、工具集成对于提高生产力的重要性,以及正确性在软件工程中的关键地位。他指出,类型系统对于确保程序的正确性和安全性至关重要,而冗余检查和封装则有助于防止错误和保护数据。同时,他还讨论了安全性和礼仪问题,以及实现和部署阶段的考虑因素。 接着,Joyner开始对C++进行具体的批评。他提出,C++中的虚拟函数可能导致代码难以理解和维护;全局分析的复杂性可能引发问题;类型安全链接在某些情况下可能不够完善;函数重载虽然增加了灵活性,但也可能导致混淆;对于继承的理解,Joyner认为C++的实现并非总是理想的;多重继承虽然提供了强大的功能,但也会引入复杂性和二义性问题;虚拟类的设计也存在争议;模板的泛型编程能力强大,但也可能导致编译时膨胀和复杂性增加;名称重载和嵌套类的使用需谨慎,以免引起命名冲突;全局环境的使用可能影响代码的可移植性和可维护性;多态性和继承是C++的一大特色,但也存在滥用的风险;类型转换在C++中既强大又危险,特别是RTTI和类型转换操作;Joyner还对比了Java和C++的类型转换机制,指出它们的优缺点;最后,书中还讨论了成员访问运算符('.'和'->')的使用以及在类定义中使用匿名参数和无名构造函数的潜在问题。 通过这些深入的批判,Joyner试图引导读者思考C++的设计选择,以及如何在实际项目中更好地利用或规避这些特性。书中的讨论不仅限于技术层面,还涉及到了设计哲学和编程实践,对理解C++及其在现代软件开发中的位置提供了有价值的洞察。