0

假设我在 Visual Studio 的项目 X 中定义了一个基类 Shape 和一个来自 Shape 的派生类 Triangle。我在项目 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 类是不够的,因为它的成员函数的知识是必要的。

该线程中提供的答案在这方面没有帮助。

4

0 回答 0