尝试在 VS2010 上构建我的解决方案时,我变得疯狂、神秘的编译器错误。我真的很难理解这些包括工作。
Game.cpp
Game.h
Deck.cpp
Deck.h
Card.h
// Game.cpp
#include "Game.h"
都好。现在我需要创建一个新牌组:
// Game.h
private:
static Deck _deck;
那么我需要包含 Deck.h 以便它知道它是什么:
// Game.h
#include "Deck.h"
class Game {
private:
Deck _deck;
}
好的,没关系。但现在我需要使用 Game.cpp 中的 _deck
// Game.cpp
#include "Game.h"
Deck Game::_deck;
void Shuffle(void)
{
_deck = Deck();
_deck.Shuffle();
}
但我收到一条错误消息,提示“Deck 未定义”。但是既然 Game.cpp 包含 Game.h,Game.h 应该包含 Deck.h 吗?
如果我将 Deck.h 添加到 Game.cpp 我得到:
"Uses undefinied class Deck Game.cpp"
和
"Deck class redeclaration Deck.h"
我完全不明白这个...