【初心者歓迎】C/C++室 Ver.20【環境依存OK】

このエントリーをはてなブックマークに追加
320デフォルトの名無しさん
規制のため代理レスしてもらっています。
VC++.net2002でのtemplateについての質問です。
以下のようなクラスを書いて使おうとしたらリンカエラーがでます。
template使うのは初めてなので参考書を見てもどこが違うのか全くわかりません。
そもそもこの環境でtemplateが使えるのかすらわからない状態です。
どこをどう直せばよいのでしょうか?
#pragma once
template <typename T>
class Hoge{
public:
Hoge(void);
virtual ~Hoge(void);
void Test(void);
};
#include "StdAfx.h"
#include "hoge.h"
template <typename T>
Hoge<T>::Hoge(void){}
template <typename T>
Hoge<T>::~Hoge(void){}
template <typename T>
void Hoge<T>::Test(void){}

_tWinMainの最初に以下のように書いたらリンクエラーがでます。
Hoge<int> hoge;
hoge.Test(0);

Test error LNK2019: 未解決の外部シンボル "public: __thiscall Hoge<int>::Hoge<int>(void)" (??0?$Hoge@H@@QAE@XZ) が関数 _WinMain@16 で参照されました。
Test error LNK2019: 未解決の外部シンボル "public: virtual __thiscall Hoge<int>::~Hoge<int>(void)" (??1?$Hoge@H@@UAE@XZ) が関数 _WinMain@16 で参照されました。
Test error LNK2019: 未解決の外部シンボル "public: void __thiscall Hoge<int>::Test(void)" (?Test@?$Hoge@H@@QAEXXZ) が関数 _WinMain@16 で参照されました。
Test fatal error LNK1120: 外部参照 3 が未解決です。