Ho una classe chiamata class object
che ha una variabile chiamata density (_OMEGA è correlata alla densità: density = _OMEGA * x). Ho anche un file di configurazione (un file txt) dove dico _OMEGA = 1.4. Poi ho letto che _OMEGA e altre variabili di configurazione dal file txt in un contenitore in class config
che userò nel mio progetto durante il runtime.
Ora faccio un sacco di questo class object
, dato che ne faccio molti non voglio passare _OMEGA a ciascuno di questi oggetti durante la creazione dato che non voglio memorizzare questo _OMEGA in ognuno di questi class object
. (Io uso _OMEGA solo per variare la variabile di densità in class object
)
So che static
variabile è inattiva per questi casi, ma non sono sicuro di come procedere e di usarlo.
- So che MACRO è inattivo per questo, ma non voglio usarli in questo caso particolare.
Quello che ho fatto finora è:
In main.cpp dopo aver letto il file di configurazione che faccio
object::_OMEGA = config.get_val("OMEGA");
Ricevo un riferimento indefinito all'oggetto :: _ OMEGA
Penso perché ottengo questo errore dal momento che non ho fatto il
object::_OMEGA = config.get_val("OMEGA");
nel file cpp. Ma se lo faccio nel file cpp, devo passare il config reference
a tutti object class
, che sembra controproducente.
Per evitare questo errore ho fatto:
double object::_OMEGA = 0;
e nel file .h dell'oggetto ho dichiarato una variabile static double _OMEGA
Ora compilo ma ora sono sicuro che questo sia il modo giusto di fare qualcosa.