Definire e usare una variabile globale

di il
4 risposte

Definire e usare una variabile globale

Buonasera.
Ho una classe "Dichiarative" (.h e .cpp) in cui sono annoverate alcune variabili che mi servono in tutta l'applicazione.
Poi ho anche la classe MainWindow derivata da Dichiarative in modo da poter utilizzare tutte le variabili di Diachiarative definite Protected.
Avrei però bisogno di un'altra variabile a livello globale, che possa contenere l'indirizzo dell'oggetto MainWindow.
Questa variabile non posso dichiararla in Dichiarative perché MainWindow non può esservi inclusa, altrimenti creerebbe un conflitto (A che includa B e B che includa A giustamente non è consentito farlo).
Ho pensato che potrei dichiarare in Dichiarative una variabile generica tipo
static double *indirizzo_di_MainWindow;
che poi dovrei valorizzare nel costruttore di MainWindow con un'istruzione tipo
*indirizzo_di_MainWindow = this
ma il compilatore mi restituisce l'errore
assigning to 'double *' from incompatible type 'MainWindow *'
Mi dite come potrei risolvere il problema ?
Vi ringrazio tanto.

4 Risposte

  • Re: Definire e usare una variabile globale

    Perché un puntatore a double?
  • Re: Definire e usare una variabile globale

    Dovrebbe essere un puntatore a MainWindow, ma MainWindow inDichiarative non è conosciuto, quindi come potrei fare ?
  • Re: Definire e usare una variabile globale

    Non vedendo il codice non si capisce molto ma non puoi scegliere un tipo di puntatore che non c'entra nulla.
    Deve essere di tipo MainWindow.

    Fermo restando che ancora non ho capito molto dell'esigenza che hai...
  • Re: Definire e usare una variabile globale

    MainWindow è la classe principale dell'applicativo ed utilizza una maschera creata con Glade (sono su Linux con ide Qt-Creator parametrizzato per l'uso di Gtkmm). In MainWindow ci sono delle funzioni che scrivono sullo schermo e queste funzioni dovrei poterle richiamare da altri parti dell'applicativo, per esempio Classe_C. Per poter utilizzare la tecnica dei signals e interrupt, dovrei disporre dell'indirizzo di MainWindow all'interno di Classe_C, ma non so proprio come poter ottenere quell'indirizzo senza includere MainWindow in Classe_C. D'altra parte non posso includere MainWindow perché anche Classe_C è derivata da Dichiarative che sta alla testa di tutte le classi.
    Qualche idea ?
Devi accedere o registrarti per scrivere nel forum
4 risposte