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();
}
しかし、「デッキが定義されていません」というエラーが表示されます。しかし、Game.cpp には Game.h が含まれているので、Game.h には Deck.h を含める必要がありますか?
Deck.h を Game.cpp に追加すると、次のようになります。
"Uses undefinied class Deck Game.cpp"
と
"Deck class redeclaration Deck.h"
これが全然わからない…