C++编程语言的批判分析(第三版)

4星 · 超过85%的资源 需积分: 0 3 下载量 12 浏览量 更新于2024-09-30 收藏 352KB PDF 举报
"C++批判(第三版)" 是一本由Ian Joyner编写的书籍,主要对C++编程语言进行了深入的分析与批评。书中讨论了1990年代的编程语言趋势,并且特别指出,随着更多解决C++问题的环境和语言的出现,这一批判变得更加具有现实意义。作者强调,这本书并非学术论文,但某些关于继承等技术性主题的探讨可能需要一定的技术背景知识。 在书中,Joyner首先介绍了编程语言的角色,强调了编程的本质、沟通、抽象、精确性、工具集成、正确性、类型系统、冗余检查、封装、安全性和礼仪考虑、实施与部署的挑战等方面的重要性。他指出,这些因素都是评价一个编程语言优劣的关键指标。 针对C++本身,Joyner列举了一系列具体的批评点,包括: 1. 虚函数:他可能认为虚函数在实现多态性时带来了复杂性。 2. 全局分析:可能指C++的全局作用域带来的可读性和维护性问题。 3. 类型安全链接:可能讨论了C++在链接阶段可能出现的类型错误。 4. 函数重载:可能导致代码难以理解和维护。 5. 继承的性质:Joyner可能关注于继承的滥用或不恰当使用。 6. 多重继承:可能导致钻石问题和其他复杂性。 7. 虚类:可能涉及其在内存布局和性能上的影响。 8. 模板:虽然提供了泛型编程,但也可能导致编译期膨胀和复杂性。 9. 名称重载:可能导致代码的模糊性和错误。 10. 内嵌类:可能讨论了其在封装和作用域上的特性。 11. 全局环境:Joyner可能批评C++对全局变量的依赖。 12. 多态性和继承:可能涉及它们在设计和实现中的挑战。 13. 类型转换:C++的动态和静态类型转换可能存在问题。 14. RTTI(运行时类型信息)和类型转换:可能涉及效率和安全性问题。 15. 新的类型转换:可能讨论C++标准库中改进的类型转换机制。 16. Java和类型转换:对比C++,Java在类型转换上的不同处理。 17. 成员访问操作符 '. ' 和 '->':可能涉及指针和对象的访问方式。 18. 类定义中的匿名参数:可能指隐式参数或模板参数的使用。 19. 无名构造函数:可能讨论了这种做法的潜在混淆。 通过这些细致的分析,Joyner旨在帮助读者理解C++的优缺点,以便在选择编程语言时做出更明智的决策。对于那些需要评估C++是否适合其项目的人来说,这本书提供了宝贵的见解。