Je suis en train d'écrire un programme de poker, où deux classes que j'ai sont une classe Deck et une classe Hand. La classe Hand hérite de la classe Deck, de sorte qu'elle peut utiliser sa méthode printGroup. Cependant, quand je compile je reçois une erreur qui dit:erreur d'héritage: "nom de classe attendu avant '{' jeton"
expected class-name before '{' token
se référant à la ligne:
class Hand : public Deck{
Voici le code pour les deux têtes de classe. Quelqu'un pourrait-il m'aider à résoudre ce problème?
// tête à la main
#ifndef HAND_H
#define HAND_H
#include <iostream>
#include <vector>
#include "Deck.h"
#include "Card.h"
class Card;
class Hand : public Deck{ //error occurs from this line
public:
Hand(){}
void createHand(std::vector<Card> &, std::vector<Card> &);
};
#endif /* HAND_H */
// tête de pont
#ifndef DECK_H
#define DECK_H
#include <iostream>
#include <vector>
#include "Card.h"
class Card;
class Deck{
public:
Deck(){}
void createDeck(std::vector<Card> &);
void printGroup(std::vector<Card> &, int);
void sortDeck(std::vector<Card> &, int, int);
};
#endif /* DECK_H */
Étant donné que vous incluez Card.h partout, la déclaration directe n'est pas vraiment nécessaire. Est-ce que l'erreur se produit avec la déclaration avant supprimée, aussi? –
Pouvez-vous coller card.h? Le sentiment de l'intestin est que vous avez une dépendance circulaire. – marcog