Quote:
Originariamente inviato da songoge
Devo creare una classe che contenga al suo interno variabili,funzioni e altre classi.
Queste ultime (le sottoclassi) devono utilizzare le variabili della classe madre (comprese alcune delle altre sottoclassi).
Il problema č che se metto tutto in un file il programma funziona in quanto le variabili della classe madre sono dichiarate static e dunque visibili.
Il fatto č che il progetto č molto esteso ed ho la necessitą di dividerlo in pił file. Ho deciso di spezzettare ogni classe in un file header ma qui c'č il problema. Le varibili che utilizzo (locali per la classe madre e globali per le sottoclassi) non vengono viste dalle sottoclassi perchč su file esterni. Ho usato la parola chaive extern
ma il problema non viene risolto, mi dice "unresolvend external symbol ecc..."
Dov č che sbaglio?
Che faccio per risolvere il problema?
Grazie in anticipo!!
|
Il compilatore deve sapere in che unita' di compilazione dove vanno messe le variabili statiche di classe, per questo devi inizalizzarle con un valore similmente a quel che si fa per le variabili statiche normali.
ad esempio qualcosa del tipo (modulo errori ovviamente, e' un po' che non le uso

)
Codice:
// foo.h
class Foo
{
...
static int variabile;
}
// foo.cpp
#include <foo.h>
int Foo::variabile = 10;