循環参照参照エラーが発生しました。ここでは、CardFactoryでDeck型のオブジェクトを使用し、DeckにCardFactory型のオブジェクトを使用します。どのようにこの問題を解決するためのヒント?C++ヘッダーファイルで循環参照を解決する
//CardFactory.h
#ifndef CARDFACTORY_H
#define CARDFACTORY_H
#include "Deck.h"
#include <string>
using std::string;
class CardFactory {
public:
Deck getDeck();
static CardFactory* getFactory() {
static CardFactory singleton;
return &singleton;
}
};
#endif
//Deck.h
#ifndef DECK_H
#define DECK_H
#include <vector>
#include <iostream>
#include "CardFactory.h"
using std::ostream;
class Deck : public std::vector<Card*> {
friend ostream& operator<<(ostream& os, const Deck& dt);
Card* draw();
Deck(CardFactory* cf);
};
#endif
へのポインタを使用している
Deck
クラスで動作するはずです。 –