私は自分のプログラムを書きましたが、ヘッダー ファイルにすべてを保持し、メインを作成すると機能します。現在、それらを実装ファイルに分割していますが、Eclipse でエラーが発生し続けます。コンストラクターと関数の開き中かっこごとにエラーが発生します。それらのすべてに、「(コンストラクターまたはメソッドの名前)の再定義、以前にここで宣言されました」と書かれています。ヘッダーファイルで機能するため、何が間違っていますか?
#include "KeyValuePair.h"
template<typename Key,typename Value>
KeyValuePair<Key,Value>::KeyValuePair()
{ // error here
}
template<typename Key,typename Value>
void KeyValuePair<Key,Value>::setPair(Key key, Value value)
{ // error here
pairKey = key;
pairValue = value;
}
template<typename Key,typename Value>
Key KeyValuePair<Key,Value>::getKey() const
{ // error here
return pairKey;
}
template<typename Key,typename Value>
Value KeyValuePair<Key,Value>::getValue() const
{ // error here
return pairValue;
}
ヘッダー ファイル:
#ifndef _KEYVALUEPAIR_H_
#define _KEYVALUEPAIR_H_
template<typename Key,typename Value>
class KeyValuePair
{
private:
Key pairKey;
Value pairValue;
public:
KeyValuePair();
void setPair(Key key,Value value);
Key getKey() const;
Value getValue() const;
};
#include "KeyValuePair.cpp"
#endif