c++ - "Multiplicity of implementation"- 如何处理?什么 's the ' name' 这样的东西?

标签 c++ oop implementation interaction

我的问题是关于编程技术或设计模式的。假设几个派生自 base 的类包含一个纯虚方法,该方法应该在它们之间进行一些交互。

例如,RectangleEllipseTriangleLine - 全部派生自 Shape 。这个抽象类 Shape 包含 virtual bool Intersects(Shape* another) = 0

It seems, 我需要进行六个实现,对吧(顺便说一句,在这个特定示例中有更好的解决方案吗?)。

目前我不知道任何其他示例。

也许我在谈论一个众所周知的事情,我几乎可以肯定有一些名字描述了这项技术。但是,我什至不知道输入什么才能在互联网上找到它。

好吧,你能告诉我如何实现这样的东西吗(我仍然想知道是否需要任何辅助方法,或者,也许是 RTIIdynamic_cast? ) 或指出有关它的一些来源(艺术、教程或其他)?

最佳答案

这是double dispatch的课本示例,wikipedia文章对问题和解决方案给出了很好的描述:

http://en.wikipedia.org/wiki/Double_dispatch

如果我没记错的话,在 Andrei Alexandescu 的“现代 C++ 设计”一书中有一个非常优雅的问题解决方案

http://www.amazon.com/Modern-Design-Generic-Programming-Patterns/dp/0201704315

关于c++ - "Multiplicity of implementation"- 如何处理?什么 's the ' name' 这样的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7150982/

相关文章:

c++ - 对临时对象的常量引用

Javascript CPS (continuation passing style) 实现

c++ - 从 int 映射到类型说明符

c# - 链表的应用 C++ vs C#

c++ - 设计 : GraphicManager, TexturesPool,纹理

java - 在 Java 应用程序中实现 Growl

c++ - 不同构造函数中的构造函数调用产生错误数据

c++ - vector 作为 C++ 中的数据成员

oop - 最好的 Lua OOP 库

php - 非静态调用静态方法