【发布时间】:2018-03-03 18:20:08
【问题描述】:
这是我的 BoardField.h:
#pragma once
#include "ChessPiece.h"
#include "Game.h"
#include <SDL.h>
class BoardField{
private:
ChessPiece m_piece;
SDL_Rect m_field;
public:
friend class Game;
};
游戏.h
#pragma once
#include "BoardField.h"
class Game {
private:
//members
BoardField* m_board_fields; // 16th line
...
//methods
...
public:
...
};
我在尝试编译时在 VS2017 中遇到了这些错误:
问题出在哪里?即使尝试创建新项目它也不起作用。
【问题讨论】:
-
第 16 行是哪一行?我认为第二个代码块是game.h?如果只编译发布的代码,是否会出现错误?
-
BoardField.h包括Game.h,其中包括BoardField.h。BoardField取决于Game取决于BoardField取决于Game哪个...等等永远。其中一个类将在声明之前使用。做一些关于循环包含和循环依赖和前向声明的研究。 -
@Someprogrammerdude 如何避免它并能够让班级成为朋友?
-
@FaustasButkus 再次对提到的项目进行一些研究。特别是“前向声明”
标签: c++ visual-studio visual-studio-2017