Возникает ошибка при подключении заголовочных файлов с++

У меня есть 2 класса Desk и ChessFigure, ошибка возникает, при подключении их заголовочных файлов друг к другу ------1 заголовочный файл -------

#pragma once
#include "ChessFigure.h"
class Desk{
    ChessFigure* desk[8][8];
public:
    void AddFig(int x, int y, ChessFigure *fig); 
    void RemoveFig(int x, int y); 
    ChessFigure* GetFigure(int x, int y); 
    Desk();
};

----- второй заголовочный файл-----

#pragma once
#include <string>
#include "Desk.h"
class ChessFigure{
protected:
    std::string name; 
    bool color; 
    bool life; 
    int weight; 
    struct Coordinates {
        int x; 
        int y; 
    };
    virtual bool CheckMove(int x, int y);
    void Kill(ChessFigure* figure);
    virtual bool IsOnAWay(int x, int y)=0;
    Coordinates* coord = new Coordinates;
    ChessFigure* figure; 
public:
    void SetXY(int x, int y);  
    int GetX(); 
    int GetY(); 
    int GetWeight(); 
    bool GetColor();
    bool GetLife();
    void SetColor(bool color);   
    virtual void Move(int x, int y) = 0;   
    ChessFigure();
    ChessFigure* GetFigure(int x, int y);
};

если я в одном из файлов убираю подключение другого программа компилируется Список ошибок


Ответы (1 шт):

Автор решения: dIm0n

Уберите из ChessFigure.h #include "Desk.h", потому что в заголовочном файле ChessFigure.h он не нужен. Иначе они друг друга включают и поэтому происходит ошибка.

→ Ссылка