2013-08-12 10 views
18

Sono di fronte a un problema con la mia classe dell'elenco collegato, ho creato l'interfaccia e i file di implementazione della classe, ma quando lo compilo, si verifica questo errore: "uso non valido del modello chiama "LinkedList" senza un elenco di argomenti ". Ecco il mio file di interfaccia:uso non valido del nome del modello senza un elenco di argomenti

#ifndef LINKEDLIST_H 
#define LINKEDLIST_H 

template <typename T> 
struct Node{ 
    T info; 
    Node<T> *next; 
}; 

template <typename T> 
class LinkedList 
{ 
    Node<T> *start; 
    Node<T> *current; 
public: 
    LinkedList(); 
    ~LinkedList(); 
}; 

#endif // LINKEDLIST_H 

e questo è il mio codice di implementazione:

#include "LinkedList.h" 

LinkedList::LinkedList() 
{ 
    start = nullptr; 
    current = nullptr; 
} 

LinkedList::~LinkedList() 
    { 

    } 
+3

'modello LinkedList :: LinkedList()' e implementarlo nell'intestazione – billz

risposta

34

scrittura in questo modo:

template<typename T> 
LinkedList<T>::LinkedList() 
{ 
    start = nullptr; 
    current = nullptr; 
} 

E allo stesso modo per le altre funzioni membro. Ma ti imbatterai in un altro problema: dichiarazioni e definizioni di un modello can't be separated in file diversi.

+0

ho fatto, ma come hai detto, c'è un errore con la dichiarazione di 'NULL', si dice che NULL non è stato dichiarato nel questo scopo. come posso risolvere questo problema ?? – Alladin

+0

@Alladinsaoudi NULL è una macro definita in diverse intestazioni elencate [qui] (http://en.cppreference.com/w/cpp/types/NULL). Dovrai includere almeno uno di loro dove vuoi usarlo. – jrok

+0

@jrol grazie a looooooooooot, apprezzo molto il tuo aiuto. :)))) – Alladin

Problemi correlati