|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
[c++] Suddividere due classi su piú file
Salve a tutti!
Sto facendo un po'di tentativi con c++ e ho scritto le seguenti classi: Codice:
class cLevel
{
private:
bool Data[5][5]; //Mappa delle collisioni
class cPlayer //Classe Player
{
private:
int x; //Posizione x del giocatore
int y; //Posizione y del giocatore
cLevel *Level; //Istanza di cLevel, dove poter accedere ai suoi metodi
public:
cPlayer(cLevel *_Level); //Costruttore della classe che richiede un puntatore a level
void MoveRight(void); //Muove il player a destra se non ci sono collisioni, usando il metodo di cLevel per intercettare collisioni
friend class cLevel; //Consente a cLevel di accedere alle proprietá x e y per poter disegnare il livello
};
cPlayer *Player; //Istanza di cPlayer contenuta in cLevel
public:
cLevel(void); //Costruttore di clevel, dove viene inizializzato Data e Player
bool Collide(int x,int y); //Ritorna true se la posizione (x|y) sulla mappa corissponde a collisione
void UpdatePlayer(void); //Muove il player a destra
void Draw(void); //Disegna il livello e il player sullo schermo
};
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
Codice:
class cPlayer //Classe Player
{
private:
int x; //Posizione x del giocatore
int y; //Posizione y del giocatore
cLevel *Level; //Istanza di cLevel, dove poter accedere ai suoi metodi
public:
cPlayer(cLevel *_Level); //Costruttore della classe che richiede un puntatore a level
void MoveRight(void); //Muove il player a destra se non ci sono collisioni, usando il metodo di cLevel per intercettare collisioni
friend class cLevel; //Consente a cLevel di accedere alle proprietá x e y per poter disegnare il livello
};
class cLevel
{
private:
bool Data[5][5]; //Mappa delle collisioni
cPlayer *Player; //Istanza di cPlayer contenuta in cLevel
public:
cLevel(void); //Costruttore di clevel, dove viene inizializzato Data e Player
bool Collide(int x,int y); //Ritorna true se la posizione (x|y) sulla mappa corissponde a collisione
void UpdatePlayer(void); //Muove il player a destra
void Draw(void); //Disegna il livello e il player sullo schermo
};
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
Ma cosí non mi dá problemi a definire friend una classe non ancora definita?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perché usare friend ?!?!? Solo per poter cambiare x e y ? Non bastano due metodi per spostare x e y ?
|
|
|
|
|
|
#5 | |
|
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
Quote:
Invece se separo le due classi non riesco piú ad accedere a questo metodo EDIT: Grazie delle vostre risposte, comunque ho risolto con una dichiarazione anticipata! Ultima modifica di stdecden : 03-08-2007 alle 22:16. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:08.











ho concluso con: kvegeta, doctordb, Leland Gaunt.









