0

基本クラス Shape と、Visual Studio のプロジェクト X で定義された Shape からの派生クラス Triangle があるとします。私はまた、適切なメソッドを動的に呼び出すことができるようにしたいプロジェクト Y にクラス Transformations を持っています:

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