ciao a tutti, sto realizzando la struttura dati lista con i cursori, una via di mezzo tre realizzazione con vettore e con puntatore. sono ancora all'inizio e ho creato il costruttore e il metodo crealista. facendo il test per vedere se l'oggetto viene creato mi dà errore. posto i codici.
listac.h
testlistac.cppcodice:#ifndef listac_h #define listac_h #include <iostream> #include <stdlib.h> using namespace std; const int lungvet = 100; template<class tipoelem> class listac { public: typedef int posizione; listac(); void crealista(); private: struct nodo { posizione precedente; tipoelem elemento; posizione successivo; }; static nodo spazio[lungvet]; static posizione listalibera; int lunglistalibera; posizione lista; void inizializzalistalibera() { for(int i = 0; i < (lungvet - 1); i++) { if(i == 0) { spazio[i].precedente = lungvet - 1; spazio[i].successivo = i + 1; } else { spazio[i].precedente = i - 1; spazio[i].successivo = i + 1; } } spazio[lungvet - 1].precedente = lungvet - 2; spazio[lungvet - 1].successivo = 0; listalibera = 0; } }; #endif template<class tipoelem> listac<tipoelem>::listac() { this->crealista(); } template<class tipoelem> void listac<tipoelem>::crealista() { lista = listalibera; listalibera = spazio[listalibera].successivo; spazio[listalibera].precedente = spazio[lista].precedente; spazio[lista].precedente = lista; spazio[lista].successivo = lista; }
gli errori che mi vengono visualizzati sono i seguenti:codice:#include "listac.h" #include <iostream> #include <stdlib.h> using namespace std; int main() { listac<int> list; system("pause"); return 0; }
[Linker error] undefined reference to `listac<int>::listalibera'
[Linker error] undefined reference to `listac<int>::listalibera'
[Linker error] undefined reference to `listac<int>::spazio'
[Linker error] undefined reference to `listac<int>::listalibera'
[Linker error] undefined reference to `listac<int>::listalibera'
[Linker error] undefined reference to `listac<int>::spazio'
[Linker error] undefined reference to `listac<int>::spazio'
[Linker error] undefined reference to `listac<int>::spazio'
[Linker error] undefined reference to `listac<int>::spazio'
cosa devo correggere???

Rispondi quotando