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
codice:
#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
listap.cpp
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()
{
}
L'errore si riferisce sicuramente al file .cpp alla seguente istruzione:
codice:
Lista::spazio[i].elemento = 0;
Questo perchè se lo commento funziona di nuovo tranquillamente.
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?