【问题标题】:Run-Time Binding C++运行时绑定 C++
【发布时间】:2010-05-12 22:34:33
【问题描述】:

我正在阅读有关 C++ 中的虚函数的教科书,但我的书中并未详细说明运行时绑定的确切含义。它没有告诉我为什么需要运行时绑定。

也许 SO 的好人可以提供一些链接或信息?

谢谢:]

【问题讨论】:

    标签: c++ binding runtime virtual


    【解决方案1】:

    这个怎么样? ;D

    http://www.google.ca/search?hl=en&source=hp&q=virtual+function+runtime+binding+c%2B%2B&aq=f&aqi=&aql=&oq=&gs_rfai=

    说真的……第一个 link 看起来不错。

    这是一个预览:

    使用虚函数的最突出的原因是在派生类中具有不同的功能。非虚成员函数和虚成员函数的区别在于,非虚成员函数是在编译时解析的。

    还有来自另一个site

    在大型、复杂的程序中,虚函数允许程序员简化编程过程。如果使用正确,基类将成功定义其派生类的接口。但是,程序将把这个接口的实现留给派生类。因此,程序员可以使用一个接口进行多种实现。此功能还允许创建建立标准接口的类库,但允许程序员根据可能出现的任何独特的实现情况来定制这些接口。最流行的库之一是 Microsoft 基础类 (MFC) 库,它提供了在 Windows 环境中编程所需的接口。这个库让程序员不必重新发明 Windows 接口,而是让他或她专注于这些接口的具体实现。

    【讨论】:

    • 嗯,我搜索了“virtual C++”并得到了垃圾
    • 好吧,好吧,再补充几个关键词!虚拟C++可以参考模拟C++编写的实践! ;D 实际上,添加“运行时绑定”确实有帮助。
    • 谷歌搜索一个简单的英语问题通常比你想象的要好。 :)
    • @Cogwheel:确实!谷歌拥有出色的搜索算法,因为他们所要做的就是查看他们的数据库,了解地球上每个人都在想什么,并回答这个问题。 ;P
    • 请不要放谷歌链接!有人可以在谷歌搜索答案并得到这篇文章。什么是答案?下一个链接到谷歌!直接提供网站链接——人们可能不知道为什么一个网站比其他网站更好。是的,我知道......谷歌搜索不会受到伤害。但是这个网站是为了帮助,不是吗?
    【解决方案2】:

    运行时绑定的最简单形式是多态性。在 C++ 的上下文中,多态是通过虚函数实现的。这样做的基本目的是通过指针或对基类的引用来调用派生类实例上的方法。

    谷歌搜索虚函数应该会给你很多关于如何以及为什么这样做的好结果。

    【讨论】:

      【解决方案3】:

      请阅读 Bobs 大叔关于面向对象设计的 SOLID 原则的文章:http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

      显然,它们与运行时绑定无关,但它们确实描述了您尝试解决的需要使用运行时绑定的设计问题类型。

      我认为关于开放封闭原则的文章可能最好地展示了(同样,这篇文章不是关于运行时绑定)何时需要这样做: http://www.objectmentor.com/resources/articles/ocp.pdf

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多