Buonasera.
Mi sono riavvicinato alla programmazione dopo diversi mesi di sospensione. Sono un vecchio programmatore che ha iniziato il suo hobby con l'assembler per l'IBM 360/370 e 7090. Nella mia stupidità, credevo che i miei pregressi fossero sufficienti per inoltrarmi nel c++, ma mi sbagliavo: ci sono troppe cose che non so e non riesco a risolvere. Inizio col dirvi quello che non mi fa andare avanti.
Innanzi tutto: sono su Linux, con l'IDE Qt-Creator impostato per usare Gtkmm e le maschere video realizzate con Glade. Veniamo al dunque.
Ho una classe che ha come membro-dati una struttura intabellata in una matrice a due dimensioni. Questa matrice serve in tutti i moduli dell'applicazione, avrei voluto renderla "static" ma credo di avere capito che le classi non si possono definire statiche, ma la struttura sì. Così nell'header della classe ho queste istruzioni:
#define COMBINAZIONIPREVISTE 101
#define DIMENSIONETABELLA 1000
static structTabIndicatori TabIndicatori [DIMENSIONETABELLA + 1] [COMBINAZIONIPREVISTE + 1];
In tutti i moduli .cpp che necessitano l'accesso a questa matrice ho inserito, prima di ogni altra cosa, l'istruzione:
extern structTabIndicatori TabIndicatori [DIMENSIONETABELLA + 1] [COMBINAZIONIPREVISTE + 1];
ma non riesco a capire come mai l'IDE mi riconosce i nomi della matrice e non mi segnala nessun errore, mentre a livello di compilazione ottengo l'errore "undefined reference to 'TabIndicatori' ". Oltretutto, sembra che questo errore ci sia solo per alcuni moduli e non per altri, a meno che non sia perché si ferma di elencare gli errori dopo un certo numero.
C'è qualche anima buona che mi può suggerire cosa dovrei fare per eliminare il problema ?
Vi ringrazio molto.