实现双重调度的循环依赖

时间:2016-06-15 06:55:46

标签: c++ visual-studio circular-dependency dynamic-dispatch

假设我有一个基类Shape,以及一个来自Shape,Triangle的派生类,在Visual Studio的项目X中定义。我还在项目Y中有一个类转换,我希望能够动态调用适当的方法:

void Rotate(Shape& shape);
void Rotate(Triangle& triangle);

我正在尝试使用this之后的访问者模式执行此操作。

在Shape.cpp和Triangle.cpp中,我实现了以下方法:

void rotate(Transformations trans) {
    trans.Rotate(this);
}

但是,项目X在项目Y之前编译,而项目Y依赖于项目X,这使我具有循环依赖性。

不幸的是,前向声明Transformations类是不够的,因为必须了解其成员函数。

this thread中提供的答案在这方面没有帮助。

0 个答案:

没有答案