Another Joe
17-05-2009, 11:17
Salve, :)
sto lavorando con le classi, ma non riesco a capire una cosa: dichiarando in una classe una variabile, possibilmente statica, non ci sono problemi di sorta, si può inizializzarla e usarla. Con una variabile, invece, cominciano i problemi e sinceramente non capisco cosa mai possa essere...
class gioco{
public:
gioco();
void stampa ();
int randomWalk(int spostamenti);
int randomWalkConDimostrazione(int spostamenti);
int gioca(int numero);
static const int righe=5;
static const int colonne=5;
static int numeroDiMosse;
int controlloFineGioco();
private:
int array [righe][colonne];
};
Il problema è dato dalla variabile numeroDiMosse. Intanto il compilatore si lamenta se non la rendo statica, e già qui non ne capisco il motivo.
Così la dichiaro e la rendo statica e compila correttamente. Ma se provo ad inizializzarla, ad esempio nel costruttore della classe, ecco l'errore di linking:
[Linker error] undefined reference to `giocoDelQuindici::numeroDiMosse'
Sto programmando un progetto diviso in 3 files, il main.cpp, class.h e metodi.h .
Volevo gentilmente chiedere se sbaglio qualcosa io a pensare che in una classe si possa dichiarare una variabile, ma non credo, anche perchè anche array[righe][colonne] è una variabile, ma riesco ad inizializzarla correttamente nel costruttore, oppure come devo comportarmi per gestire questa variabile dentro e fuori dai metodi e, possibilmente da cosa è dato l'errore. :muro:
Grazie davvero! :D
sto lavorando con le classi, ma non riesco a capire una cosa: dichiarando in una classe una variabile, possibilmente statica, non ci sono problemi di sorta, si può inizializzarla e usarla. Con una variabile, invece, cominciano i problemi e sinceramente non capisco cosa mai possa essere...
class gioco{
public:
gioco();
void stampa ();
int randomWalk(int spostamenti);
int randomWalkConDimostrazione(int spostamenti);
int gioca(int numero);
static const int righe=5;
static const int colonne=5;
static int numeroDiMosse;
int controlloFineGioco();
private:
int array [righe][colonne];
};
Il problema è dato dalla variabile numeroDiMosse. Intanto il compilatore si lamenta se non la rendo statica, e già qui non ne capisco il motivo.
Così la dichiaro e la rendo statica e compila correttamente. Ma se provo ad inizializzarla, ad esempio nel costruttore della classe, ecco l'errore di linking:
[Linker error] undefined reference to `giocoDelQuindici::numeroDiMosse'
Sto programmando un progetto diviso in 3 files, il main.cpp, class.h e metodi.h .
Volevo gentilmente chiedere se sbaglio qualcosa io a pensare che in una classe si possa dichiarare una variabile, ma non credo, anche perchè anche array[righe][colonne] è una variabile, ma riesco ad inizializzarla correttamente nel costruttore, oppure come devo comportarmi per gestire questa variabile dentro e fuori dai metodi e, possibilmente da cosa è dato l'errore. :muro:
Grazie davvero! :D