2013-08-12 15 views
18

Ich stehe vor einem Problem mit meiner verknüpften List-Klasse, ich habe die Schnittstelle und die Implementierungsdateien der Klasse erstellt, aber wenn ich es erstelle, tritt dieser Fehler auf: "ungültige Verwendung der Vorlage Name 'LinkedList' ohne Argumentliste ". hier ist meine Schnittstellendatei:ungültige Verwendung des Vorlagennamens ohne eine Argumentliste

#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 

und dies ist mein Implementierungscode:

#include "LinkedList.h" 

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

LinkedList::~LinkedList() 
    { 

    } 
+3

'template LinkedList :: LinkedList()' und implementieren sie in Kopf – billz

Antwort

34

schreibt es so:

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

Und in ähnlicher Weise für andere Member-Funktionen. Aber Sie werden auf ein anderes Problem stoßen - Deklarationen und Definitionen einer Vorlage can't be separated zu verschiedenen Dateien.

+0

Ich habe es getan, aber wie Sie gesagt haben, gibt es einen Fehler mit der Erklärung von ‚NULL‘, sagt er, dass NULL nicht in deklariert wurde dieser Bereich. Wie kann ich dieses Problem lösen? – Alladin

+0

@Alladinsaoudi NULL ist ein Makro, das in verschiedenen Kopfzeilen definiert ist, die hier aufgelistet sind (http://en.cppreference.com/w/cpp/types/NULL). Sie müssen mindestens eine davon angeben, wo Sie sie verwenden möchten. – jrok

+0

@jrol danke ein loooooooooot, ich schätze deine Hilfe wirklich. :)))) – Alladin

Verwandte Themen