VC++6.0でテンプレートクラスを用いたいのですがエラーが出ます
'CImageTemplate' : 指定の指定のテンプレート クラスはすでに定義されています
と言われてしまいます.
まだC++の知識が浅いのですが間違っている箇所がわかれば教えてください.
---------テンプレートのヘッダ(ImageTemplate.h)---------
template <class TempData> class CImageTemplate{
private:
TempData **Data;//データ本体
…
protected:
…
InitData(int h, int w);
};
---------テンプレートのcpp(ImageTemplate.cpp)---------
#include "stdafx.h"
#include "ImageTemplate.h"
template<class TempData>CImageTemplate<TempData>::InitData(int h, int w)
{…}
---------呼び出し側のヘッダ(ImageLabel.h)---------
#include "ImageTemplate.h"
class CImageLabel{
private:
CImageTemplate < int > Label;
…
};
---------呼び出し側のcpp(ImageLabel.cpp)---------
#include "stdafx.h"
#include "ImageLabel.h"
#include "ImageTemplate.h"
CImageLabel::InitLabel(int h, int w)
{
if(!Label.CheckData()){
Label.InitData(h, w);
}
}
お礼
返事遅くなって申し訳ありません。 まだまだわからない部分がありますがちょっとずつ理解して以降と思います。