私はテンプレートに関してかなり新しいので、私のコードが非常に間違っていても、私を厳しくしないでください :) これはKey
、テンプレートを使用するクラスのヘッダー ファイルです。
//Key.h
#ifndef KEY_H
#define KEY_H
#include "../Constants.h"
template<class KeyType>
class Key
{
public:
Key<KeyType>(KeyType initial);
KeyType increment();
private:
KeyType current;
};
#endif /* KEY_H */
これは、Key
クラスの .cpp ファイルです。
//Key.cpp
#include "Key.h"
template<class KeyType> Key<KeyType>::Key(KeyType p_initial)
{
this->current = p_initial;
}
template<class KeyType> KeyType Key<KeyType>::increment()
{
this->current ++; //KeyType should implement this operator
}
だから問題は何ですか?Key
次のように、コード内の別の場所のインスタンスを作成しようとしています。
キー songID (0); // エラー: 未定義の参照
Key<int>::Key(int)
そして使用する
songID.increment(); // エラー: 未定義の参照
Key<int>::increment()