2012-04-14 11 views
2

Ich habe dieses kleine Template-Klasse definiert:Fehler: Klasse Template wurde bereits

namespace emple { 
    template <class LinkedClass> 
    class LinkedInList 
    { 
    public: 
     LinkedInList() 
     { 
      active = false; 
     } 
     ~LinkedInList(){} 
     LinkedClass* getNext() const 
     { 
      return next; 
     } 
     void setNext(LinkedClass* const next_) 
     { 
      next = next_; 
     } 
     void setActive(bool state) 
     { 
      active = state; 
     } 
     bool isActive() 
     { 
      return active; 
     } 
    private: 
     LinkedClass* next; 
     bool active; 
    }; 
}; 

Beim Kompilieren ich diesen Fehler:

class template has already been defined.

Was mache ich falsch?

+2

Ihr Snippet sieht gut aus. Hast du vielleicht vergessen, * guards * (oder '#pragma once's) zu deinem Header hinzuzufügen? – bitmask

+0

oh vielleicht werde ich es versuchen –

+0

Pragma einmal geholfen. Frage geschlossen) –

Antwort

13

Dies wird durch Multiplikation verursacht, die dieselbe Header-Datei enthält (die diese Vorlagenklasse enthält).

#ifndef EMPLE_H 
#define EMPLE_H 

// your template class 

#endif 

oder #pragma once s (die von jedem Compiler unterstützt werden ich weiß) und sind weniger unübersichtlich: Dies wird in der Regel in C++ entweder durch Einsatz von Wachen gelöst

#pragma once 

// your template class 
Verwandte Themen