3
我正在寫一個撲克程序,其中我有兩個班級是一個班級和一個班級。 Hand類繼承Deck類,因此它可以使用它的printGroup方法。然而,當我編譯我得到一個錯誤,指出:繼承錯誤:「期待的班級名稱」{'token「
expected class-name before '{' token
參考線:
class Hand : public Deck{
下面是兩個類的頭文件中的代碼。有誰能幫我解決這個問題嗎?
//手頭
#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,所以前向聲明並不是真的必要。在去除前向聲明時是否發生錯誤? – 2010-12-06 01:15:40