"使用未声明的标识符"当文件在Xcode中#included时

时间:2015-12-09 21:42:38

标签: c++ xcode undeclared-identifier

我正在设计纸牌游戏程序。

在其中,StartStack是一个" deck"对于卡片,StartCard是从卡片底部开始的卡片,而AnimalCard和ActionCard是可以添加到卡片组的卡片类型。但是,我在Xcode中遇到了一些非常奇怪的错误。

以下是我的课程:

StartStack.hpp:

#ifndef StartStack_hpp
#define StartStack_hpp

// Imports of other classes
#include "AnimalCard.h"
#include "StartCard.hpp"
class ActionCard;

// Imports of frameworks
#include <deque>
#include <stdio.h>
#include <memory>

class StartStack : public AnimalCard{

private:

    deque<shared_ptr<AnimalCard> > sstack;
    StartCard scard;

public:

    StartStack();
    StartStack& operator+= ( std::shared_ptr<ActionCard> );
    StartStack& operator-= ( std::shared_ptr<ActionCard> );
    std::shared_ptr<StartCard> getStartCard();
    char getAnimals(int);
    std::shared_ptr<ActionCard> pop_front() { return sstack.pop_front(); }
    std::shared_ptr<ActionCard> remove_front();
};

此课程的错误:

  • 第29行(&#34; public:&#34;)我得到一个&#34;未知类型名称StartCard&#34;错误
  • 第36行(&#34; std :: shared_ptr pop_front(){return sstack.pop_front();&#34;)我正在使用未声明的标识符StartCard错误。&#34;

StartCard.hpp:

#ifndef StartCard_hpp
#define StartCard_hpp

// Imports of other classes
#include "NoSplit.hpp"

// Imports of frameworks
#include <stdio.h>
#include <deque>

class StartCard : public NoSplit{

public:

    StartCard();
    char getAnimals(int index){return c;};
};

ActionCard.h:

// Imports of other classes
#include "QueryResult.hpp"
#include "Player.hpp"
#include "NoSplit.hpp"
#include "Table.hpp"

class ActionCard : public NoSplit{

public:

    virtual QueryResult query() = 0;
    virtual void perform(Table&, Player*, QueryResult ) = 0;
};

此课程的错误:

  • 第21行(介于&#34; public:&#34;&#34;虚拟QueryResult查询()= 0;&#34; - 空行)我得到&#34;未知类型名称表&#34;

AnimalCard.h是一个虚拟类,其中包含一些与卡相关的方法,到目前为止,QueryResult只是一个没有任何内容的构造函数。 Player.hpp和NoSplit.hpp也正常编译。

我已经调查了Xcode中的相关错误,并且没有遇到与我遇到的问题相关的任何问题。如果有人可以提出可能会有所帮助的事情,那将非常感激。

0 个答案:

没有答案