我一直在谷歌上搜索并阅读此内容并没有得到答案,也许有人可以帮我解决这个问题。
我希望我的UserPile类能够从我的CardPile类访问数据成员和类成员函数。我一直在标题中提到错误。有人可以解释发生了什么吗?我看到的继承教程看起来就像我的代码,除了我的是多个源代码文件。
//CardPile.h
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Card;
class CardPile
{
protected:
vector<Card> thePile;
//Card thePile[];
int pileSize;
public:
CardPile();
void insertCard( Card );
Card accessCard( int);
void displayPile();
void shuffle(); //shuffle the pile
void initializeDeck(); //create deck of cards
void deal(CardPile &, CardPile &);
void showHand();
bool checkForAce();
void discard(CardPile);
void drawCard(CardPile &);
};
//UserPlayer.h
using namespace std;
class UserPlayer: public CardPile
{
private:
//CardPile userPile;
public:
UserPlayer();
};
//UserPlayer.cpp
#include "UserPlayer.h"
#include "CardPile.h"
UserPlayer::UserPlayer()
{
}
我在这个UserPlayer类中没有发生任何事情,因为我将使用基类中的函数,所以我想在开始编写之前至少看到它编译。</ p>
感谢任何人的帮助。
答案 0 :(得分:4)
如果您想在CardPile.h
使用课程UserPlayer.h
,则必须在CardPile
中加入// CardPile.h:
#ifndef CARDPILE_H
#define CARDPILE_H
class CardPile {
// ...
};
#endif
。
您还缺少标题中的包含警示,例如:
CardPile.h
如果没有这个,您可以在UserPlayer.cpp
中有效地加UserPlayer.h
两次 - 一次来自#include "CardPile.h"
,一次来一行{{1}}
答案 1 :(得分:1)
UserPlayer.h需要#include CardPile.h - 你的代码就是这种情况吗?