som*_*ock 0 c++ oop implementation interaction
我的问题是关于编程技术,或者可能是设计模式.假设从base派生的几个类包含一个纯虚方法,它应该进行一些交互.
例如,Rectangle,Ellipse,Triangle和Line-都来自衍生Shape.而这个抽象类Shape包含virtual bool Intersects(Shape* another) = 0.
看来,我需要做六个实现,对(顺便说一句,在这个特定的例子中是更好的解决方案吗?).
我目前不知道其他任何例子.
也许我在谈论一个众所周知的事情,我几乎肯定有一些名字描述了这项技术.但是,我甚至不知道输入什么来在互联网上找到它.
那么,你能告诉我如何实现这样的事情(我仍然想知道是否需要任何辅助方法,或者,也许,RTII是dynamic_cast吗?)或者指出一些关于它的来源(艺术,教程或其他)?
这是双重调度的学校书籍示例,维基百科文章给出了问题和解决方案的良好描述:
http://en.wikipedia.org/wiki/Double_dispatch
如果我没记错的话,Andrei Alexandescu撰写的"现代C++设计"一书中有一个非常优雅的解决方案.
http://www.amazon.com/Modern-Design-Generic-Programming-Patterns/dp/0201704315