Salve a tutti,
ho una semplcie libreria che sto iniziando ad implementare ora ma mi da l'errore come da titolo (senza nemmeno indicarmi la riga dell'errore) e non riesco a capirne il perchè.
La libreria è formata da un file .h con le definizioni ed un file .cpp e sono i seguente:
listap.h
listap.cppcodice:#ifndef _LISTAP_H #define _LISTAP_H #define N 100 //dimensione del vettore typedef struct componenteSpazio { int elemento; int successivo; int precedente; } componenteSpazio; class Lista { public: /* posizione è un puntatore a cella */ typedef int posizione; typedef int tipoelem; /* Prototipi degli operatori */ void crealista(); static void inizializza_spazio(); /*bool listavuota() const; tipoelem leggilista(posizione) const; void scrivilista(tipoelem, posizione); posizione primoLista() const; bool finelista(posizione) const; posizione succlista(posizione) const; posizione preclista(posizione) const; void inslista(tipoelem,posizione&); void canclista(posizione &p);*/ private: static componenteSpazio spazio[N]; int testa; }; #endif // _LISTAP_H
L'errore si riferisce sicuramente al file .cpp alla seguente istruzione:codice:#include "listap.h" void Lista::inizializza_spazio() { int i; for(i = 0; i < N; i++) { Lista::spazio[i].elemento = 0; //spazio[i].successivo = 0; //spazio[i].precedente = 0; } } void Lista::inizializza_spazio(); void Lista::crealista() { }
Questo perchè se lo commento funziona di nuovo tranquillamente.codice:Lista::spazio[i].elemento = 0;
Non riesco però a capire dove sia il problema, così di primo acchitto sembra tutto apposto.
EDIT: Forse crede che quel ".elemento" sia riferito ad un metodo della classe Lista, ma invece si riferisce ad "elemento" appartenente alla struttura componenteSpazio che è il tipo della variabile spazio. Ma a questo punto come faccio a referenziarmi all'elemento della struttura e non ad un metodo della classe?


Rispondi quotando