2012-04-14 65 views
2

我有这个小模板类:错误:类模板已被定义

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; 
    }; 
}; 

编译时我得到这个错误:

class template has already been defined.

我在做什么错?

+2

您的片段看起来不错。你有没有忘记把* guard(或'#pragma once's)添加到你的头文件中? – bitmask 2012-04-14 21:15:31

+0

哦,也许我会试试 – 2012-04-14 21:16:21

+0

编译指示曾经帮助过。问题已关闭) – 2012-04-14 21:17:56

回答

13

这是由于包含相同的头文件(包含此模板类)而导致的。这是通过使用警卫无论是一般解决了C++:

#ifndef EMPLE_H 
#define EMPLE_H 

// your template class 

#endif 

#pragma once秒(这是由每个编译我知道支持),而且不太杂乱:

#pragma once 

// your template class