私は2つのクラスがDeckクラスとHandクラスであるポーカープログラムを作成しています。 HandクラスはDeckクラスを継承しているので、そのPrintGroupメソッドを使用できます。継承エラー: "{'token"の前に予期されるクラス名
expected class-name before '{' token
を行を参照:私は私が言うエラーを取得するコンパイルするときしかし、
class Hand : public Deck{
ここでは2つのクラスのヘッダーのためのコードです。誰も私がこれを解決するのを助けることができますか?
@ marcogの腸は、(多分Card.hがHand.hが含まれ、それは循環依存関係が正確であるであることを感じると仮定すると、//ハンドヘッダ
#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 */
//デッキヘッダ
#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 */
Card.hをどこにでも含めると、前方宣言は実際には必要ありません。フォワード宣言を削除してもエラーが発生しますか? –
card.hを貼り付けることはできますか?あなたは循環依存を持っていると感じています。 – marcog