2017-05-23 6 views
0

スリーピープログラマ(自己 - 絶賛)上記エラー: 'some class'はタイプを指定しません。これを解決するには?

#ifndef GAME_H 
#define GAME_H 
#include <iostream> 
#include "snake.h" 
#include "food.h" 
#define MAX_WIDTH 20 
#define MAX_HEIGHT 20 

class game 
{ 
    public: 
     game(); 
     static void createBoard(); 
     int gameStart(); 
     bool gameChecker(); 

    protected: 
     food apple; 
     bool gameOver = false; 
     snake python; 
     int gameSpeed = 250; 

    private: 
}; 

#endif // GAME_H 

を助ける必要がある、私はそれはエラーが "エラーと言っ示しプロジェクトコンパイルしようとするたびに

game.hと呼ばれるヘッダファイルである:『食べ物』をタイプ」という名前を付けていない

食べ物は、私はこのヘッダファイルに含まれている別のクラスある

すぎ

#include 'food.h' 

ただし、それでもエラーは解決しません。私も、ゲームの.cppファイルにfood.hを入れてみましたが、まだ希望はありません。

これは私がコード::ブロックを使用していますあなたがそれを必要とする場合のfood.hファイル

#ifndef FOOD_H 
#define FOOD_H 
#include "game.h" 
#include "snakeFragment.h" 
#include <stdlib.h> 
#include <time.h> 

class food: public snakeFragment 
{ 
    public: 
     food(); 
     int foodPlace(); 
     int printFood(); 

    protected: 
     char symbol = '*'; 

    private: 
}; 

#endif // FOOD_H 

です。私は

  • がラップトップ

  • 再起動再び

  • をクラスの書き換えプロジェクト全体

  • を再構築プロジェクトの再解析

    1. を行っている

      物事

    2. コンパイラ設定でパスを提供再起動コード::ブロック

    3. - >検索ディレクトリ

    が、どれも働きました。私は何が問題なのか分からないのですか?事前に

    おかげ

  • 答えて

    0

    あなたは循環依存関係を持っています。食品にはゲームが含まれ、ゲームには食品が含まれます。

    ヘッダーガードを正しく使用しているため、無限に無限につなぐのではなく、無限に1つだけ含まれています。ゲームの定義が最初に含まれていたので、食べ物が一種であることはわかりません。

    解決策:循環依存関係はありません。食べ物クラスはゲームから何も使わないので、これは達成しやすいはずです。

    but there are some macros in game.h

    次に、食品に依存するヘッダーに食品が依存しなくなるようにヘッダーを細かく分割します。

    +0

    私はfood.hで使用する必要があるgame.hにいくつかのマクロがあります。私は選択肢がありません。私に何ができる? –

    +0

    最新の編集をご覧ください。 – user2079303

    +0

    gracias!それは働いた..私はこれについて知りませんでした.. –

    関連する問題