2016-03-19 32 views
0

İleri sınıf başvurusu kullanarak kendileriyle birlikte iki sınıftan bahsediyorum, ancak yine de her sınıftaki sınıf örneği bildirimlerimde hata alıyorum. Not: DirectX ve sürüm kontrolü kullanıyorum, bununla bir ilgisi var mı?Tanımsız sınıflar

Game.h:

#ifndef GAME_H 
#define GAME_H 

class Player; 

class Game { 
public: 
    Player player; // Undefined class error here 
//... 
}; 

#endif 

Player.h:

#ifndef PLAYER_H 
#define PLAYER_H 

class Game; 

class Player { 
public: 
    Game game; // Undefined class error here 
//... 
}; 

#endif 

Açıkçası çok daha fazla kod var ama daha kolay okumak için yapacak tek temel kod ekleyerek düşündüm.

Herhangi bir yardım büyük memnuniyetle karşılanacaktır.

çok teşekkürler

Kül

cevap

0

belirli türde bir üyesini bildirmek için, derleyici zamanda bu tip tam beyanı olması gerekir: Sen yarattık

class Player; 

class Game { 
public: 
     Player player; // dunno what this means 

Yalnızca işaretçiler veya referanslar ile çözebileceğiniz bir talihsiz dairesel bağımlılık:

// Game.h 
#include "player.h" 

class Game { 
    Player player; // ok 
}; 

// Player.h 

class Game; 

class Player { 
    Game* game; // ok. 
}; 
+0

Evet, aynı şeyi söyleyen birkaç forum çözümünü okudum, ancak çözümünüzü yaparken hala hata alıyorum ^. Şimdi "cpp dosyasında oyuna başvuruda bulunduğumda" eksik sınıf tipine işaretçi yok "diyor, sorun şu anda kod yüklemek zorunda kalmadan benim için sorun nedir? –