PDA

View Full Version : [Dev-C++] Classi e variabili


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

fero86
17-05-2009, 11:23
che errore ti da se rendi non statico il campo numeroDiMosse? comunque quando lo rendi statico ottieni un errore di linking perché l'hai dichiarato ma non definito. per definirlo devi inizializzarlo in un file .cpp con un'istruzione come questa:
int gioco::numeroDiMosse = 0;