gpt4 book ai didi

c++ - 具有两个可以采用多种不同类型的操作数的虚函数

转载 作者:行者123 更新时间:2023-11-30 03:11:33 26 4
gpt4 key购买 nike

让我从一个具体的例子开始。在 C++ 中,我在抽象基类 CollisionVolume 下有一个类层次结构。任何碰撞体积都需要能够与任何其他体积detectCollision。此碰撞代码基于存在的两个子类进行专门化,但它是可交换的:detectCollision(a, b) == detectCollision(b, a)

我需要使用类似于虚函数的机制,因为对象通常属于抽象基类。但是,如果我使用典型的虚拟方法,则所选函数只能取决于操作数之一的类型,而不是两者。我能够做到这一点的唯一方法是使用 RTTI 或类似 RTTI 的机制。

有没有更简洁的方法来做到这一点?

最佳答案

您正在寻找 multiple dispatch . C++ 没有它,因为它很难有效地实现。大多数其他静态类型/面向效率的语言也没有。您的 RTTI 解决方案可能是伪造它的最佳方式。

关于c++ - 具有两个可以采用多种不同类型的操作数的虚函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2196405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com