C++的不足之处讨论系列(一)

以下文章翻译自Ian Joyner所著的
《C++?? A Critique of C++ and Programming and Language Trends of the 1990s》 3/E【Ian Joyner 1996】
原著版权属于Ian Joyner,
征得Ian Joyner本人的同意,我得以将该文翻译成中文。因此,本文的中文版权应该属于我;-)
该文章的英文及中文版本都用于非商业用途,你可以随意地复制和转贴它。不过最好在转贴它时加上我的这段声明。
如有人或机构想要出版该文,请最好联系原著版权所有人及我。

该篇文章已经包含在Ian Joyner所写的《Objects Unencapsulated 》一书中(目前已经有了日文的翻译版本),该书的介绍可参见于:
http://www.prenhall.com/allbooks/ptr_0130142697.html
http://efsa.sourceforge.net/cgi-bin/view/Main/ObjectsUnencapsulated
http://www.accu.org/bookreviews/public/reviews/o/o002284.htm

Ian Joyner的联系方式:
 i.joyner@acm.org
我的联系方式:
 cber@email.com.cn


前言:【译者所写的】
 要想彻底的掌握一种语言,不但需要知道它的长处有哪些,而且需要知道它的不足之处又有哪些。这样我们才能用好这门语言,也才能说我们自己掌握了这门语言。
 
C++的不足之处讨论系列(一)

虚拟函数

 在所有对C++的批评中,虚拟函数这一部分是最复杂的。这主要是由于C++中复杂的机制所引起的。虽然本篇文章认为多态(polymorphism)是实现面向对象编程(OOP)的关键特性,但还是请你不要对此观点(即虚拟函数机制是C++中的一大败笔)感到有什么不安,继续看下去,如果你仅仅想知道一个大概的话,那么你也可以跳过此节。【译者注:建议大家还是看看这节会比较好】

 在C++中,当子类改写/重定义(override/redefine)了在父类中定义了的函数时,关键字virtual使得该函数具有了多态性,但是virtual关键字也并不是必不可少的(只要在父类中被定义一次就行了)。编译器通过产生动态分配(dynamic dispatch)的方式来实现真正的多态函数调用。

 这样,在C++中,问题就产生了:如果设计父类的人员不能预见到子类可能会改写哪个函数,那么子类就不能使得这个函数具有多态性。这对于C++来说是一个很严重的缺陷,因为它减少了软件组件(software components)的弹性(flexibility),从而使得写出可重用及可扩展的函数库也变得困难起来。

 C++同时也允许函数的重载(overload),在这种情况下,编译器通过传入的参数来进行正确的函数调用。在函数调用时所引用的实参类型必须吻合被重载的函数组(overloaded functions)中某一个函

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《Effective C》是由C++专家Scott Meyers所撰写的一本书。这本书以简洁明了的方式介绍了如何编写高效且可靠的C++代码。它不仅涵盖了C++语言的核心概念和基本用法,还深入探讨了一些重要的编程技术和最佳实践。 《Effective C》的主要目标是帮助开发人员写出更好的C++代码。它通过提供一系列有效的编程建议和技巧,帮助读者避免一些常见的陷阱和错误,并指导他们学习一些高级的编程技术,以提高代码的质量和性能。 这本书的内容涵盖了很多方面。它从一些基本的原则开始,如"尽量使用const"和"优先使用引用而非指针"。然后,它深入探讨了构造函数和赋值运算符的实现方法,以及如何正确地管理资源和避免内存泄漏。此外,它还介绍了一些高级的主题,如异常安全编程、模板元编程和多线程编程。 《Effective C》以其简明的风格和专业的内容赢得了广泛的赞誉。这本书适合有一定C++编程经验的开发人员阅读,他们可以从中学习到许多有关C++编程的重要知识和技巧。读者可以通过阅读这本书,提高他们的编程水平,写出更加高效、安全和易维护的代码。 ### 回答2: 《Effective C - 英文版》是一本介绍如何高效使用C语言的书籍。该书的作者是Scott Meyers,他是一位著名的软件工程师和C++专家,也是许多程序员所敬仰的良师益友。 《Effective C - 英文版》旨在向读者传授C语言编程的最佳实践和技巧。它提供了丰富的示例代码和解释,着重强调了一些重要的编程原则和方法。这些原则和方法可以帮助程序员写出更高效、更可靠的C代码。 该书的内容涵盖了很多方面,包括变量和数据类型、控制结构、函数、指针、内存管理等。它深入讲解了每个主题的关键点,例如如何选择合适的数据类型、如何正确地使用条件语句和循环语句、如何避免内存泄漏等。此外,它还强调了良好的编程风格和代码规范,帮助读者构建易读易维护的程序。 《Effective C - 英文版》的优点在于它提供了许多实用的技术建议和经验总结。通过阅读这本书,读者可以学习到许多编程技巧,提高自己的编程水平。无论是初学者还是有经验的程序员,都可以从中获益匪浅。 总之,《Effective C - 英文版》是一本非常有价值的C语言编程指南。它向读者介绍了一些关键的编程原则和技巧,帮助他们写出更高效、更可靠的C代码。无论你是想提高自己的编程技能,还是需要在工作中使用C语言进行开发,这本书都是一个不错的选择。 ### 回答3: 《Effective C》是一本由Scott Meyers撰写的计算机编程书,旨在帮助读者提高C++编程的效率和质量。本书是Meyers继《Effective C++ 》之后的续作,更专注于C语言的应用。它不仅针对初学者,也适合有一定编程经验的读者。 《Effective C》提供了一系列实用的编程技巧和经验分享。其中包括关于C语言的特性、局限性以及最佳实践的详细说明。书中的内容更具广泛性,涵盖了诸多主题,如内存管理、指针与引用、数据结构与算法、多线程开发等。通过对这些关键概念和技术的深入讲解,读者可以更好地理解和运用C语言,提高编程效率。 值得一提的是,本书采用了大量实例和案例,通过实践来帮助读者理解概念和技巧。这种亲身实践的学习方法可以帮助读者更好地应用所学知识,提高编程效率。 另外,本书还讨论了C语言在不同平台和编译器下的差异和兼容性问题。这对于开发者来说非常重要,因为在实际应用中,经常会遇到跨平台的需求。通过了解这些差异和兼容性问题,读者可以更好地编写跨平台的C代码,提高开发效率。 总之,《Effective C》是一本深入浅出的C语言编程指南,提供了丰富的实践例子和技巧,旨在帮助读者更高效地编写高质量的C代码,适用于各种应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cber

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值