このコードセグメントを実行しようとすると、次のエラーが発生します。「メニューはタイプに名前を付けていません」。循環参照と関係があることはわかっていますが、私の人生では何を理解できません。また、menu、go、およびmanagerは繰り返しエラーを出します。コードセグメントは以下に掲載されています:
#ifndef GO__H
#define GO__H
#include <SDL.h>
#include <iostream>
#include <string>
using std::cout; using std::endl;
using std::string;
#include "ioManager.h"
#include "gui.h"
#include "clock.h"
#include "menu.h"
//class Menu;
class Go {
public:
Go ();
void play();
private:
SDL_Surface *screen;
Gui gui;
Menu menu;
void drawBackground() const;
Go(const Go&);
Go& operator=(const Go&);
};
#endif
ここにメニューがあります:
#ifndef MENU_H
#define MENU_H
#include <SDL.h>
#include <iostream>
#include "ioManager.h"
#include "gui.h"
#include "clock.h"
#include "manager.h"
class Menu {
public:
Menu ();
void play();
private:
const Clock& clock;
bool env;
SDL_Surface *screen;
Gui gui;
Manager mng;
void drawBackground() const;
Menu(const Menu&);
Menu& operator=(const Menu&);
};
#endif
マネジャー :
#ifndef MANAG_H
#define MANAG_H
#include "go.h"
class Manager {
Go go;
//other code
}
問題がどこにあるかわかりますか?エラーメッセージ:
go.h:13:0、manager.h:33、manager.cpp:2からインクルードされたファイル:menu.h:28:11:エラー:フィールド'mng'のタイプが不完全です