Witam
Mam dwie struktury - gameData oraz food w oddzielnych plikach, posiadających "strażników nagłówków". Do obu plików dołączam dyrektywą #include sporo plików niezbędnych do działania (one także są zabezpieczone strażnikami). Tak się zdarzyło, że w strukturze gameData muszę umieścić wskaźnik do obiektu food. Kiedy do gameData dołączyłem plik "Food.h" od razu pojawiło się kilka błędów o identycznej treści:
#include nested too deeply
wszystkie wskazują na dyrektywy #include w pliku Food.h.
Podejrzewam, że popełniłem jakiś błąd w strażnikach nagłówków. Poszukałem na necie jakichś tematów podobnej treści, ale jedyne porady jakie znalazłem to sprawdzenie czy nie popełniłem literówki i czy dyrektywa #ifndef ma koniec (oznaczony dyrektywą #endif.
Plik Point.h:
#pragma once
#include "Coord.h"
#include "GameData.h"
struct point
{
coord position;
char c;
point(int x = 0, int y = 0, char cn = 'o');
void displayP(gameData& data);
};
Plik Food.h:
#pragma once
#include "Point.h"
#include "Coord.h"
struct food : public point
{
food();
coord randomPos();
};
Plik GameData.h:
#pragma once
#include <string>
using namespace std;
#include "Food.h"
struct gameData
{
int score;
string screen;
food* f;
gameData() : score(0), screen(" ") {}
};
W trakcie kompilacji kompilator zapętla się "skacząc" między tymi plikami (dopiero po chwili wywala błąd). Dodam jeszcze, że przeniesienie strażnika nagłówka w Food.h przed dyrektywy dołączania plików usuwa wcześniejsze błędy, ale w pliku GameData.h nie mogę stworzyć żadnego obiektu typu food. Liczę na waszą pomoc.