Я встречаю круговую ошибку ссылки, в которой я хочу использовать объект типа Deck в CardFactory, и объект типа 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
Вы не должны наследовать от вектора и других STL контейнеров. –