Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:';某些类';不命名类型。如何解决这个问题?_C++_Codeblocks - Fatal编程技术网

C++ 错误:';某些类';不命名类型。如何解决这个问题?

C++ 错误:';某些类';不命名类型。如何解决这个问题?,c++,codeblocks,C++,Codeblocks,困倦的程序员(自我称赞)需要帮助 #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 gameStar

困倦的程序员(自我称赞)需要帮助

#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
但错误依然存在。我还尝试将food.h包含在游戏的.cpp文件中,但仍然没有希望

这是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
\ifndef FOOD\u H
#定义食物
#包括“game.h”
#包括“snakeFragment.h”
#包括
#包括
食品类别:公蛇片
{
公众:
食物();
int foodPlace();
int printFood();
受保护的:
字符符号='*';
私人:
};
#(完)//
我正在使用代码::块

我做过的事情

  • 重新分析项目

  • 重建整个项目

  • 再次重写该类

  • 重新启动笔记本电脑

  • 重新启动代码::块

  • 在编译器设置->搜索目录中提供了路径

  • 但都不管用。我不知道是什么问题


    提前感谢

    您具有循环依赖关系。食物包括游戏,游戏包括食物

    因为你已经正确地使用了头部防护装置,而不是无限地包含彼此,一个只是包含在另一个之前。碰巧游戏的定义是先包含进去的,所以它不知道食物是一种类型

    解决方案:没有循环依赖关系。看起来食物类并没有使用游戏中的任何东西,所以这应该很容易实现


    但游戏中有一些宏


    然后把你的头分成小块,这样食物就不再依赖于任何依赖于食物的头了

    但游戏中有一些宏,我需要在食物中使用。我别无选择。我能做什么?查看最新编辑。谢谢!它起作用了。。我不知道这件事。。
    #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