6

私はこの小さなテンプレートクラスを持っています:

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

コンパイルすると、次のエラーが発生します。

クラス テンプレートは既に定義されています。

私は何を間違っていますか?

4

1 に答える 1

20

これは、同じヘッダー ファイル (このテンプレート クラスを含む) が複数含まれているために発生します。これは通常、ガードを使用して C++ で解決されます。

#ifndef EMPLE_H
#define EMPLE_H

// your template class

#endif

または#pragma onces (私が知っているすべてのコンパイラでサポートされています) であり、混乱が少なくなります:

#pragma once

// your template class
于 2012-04-14T21:21:22.227 に答える