我定义了一个类模板,引用的时候却有问题,请各位帮小弟看看
//TEST.H
template <class T>
class CTemplate
{
public:
void MyFunc(T a);
CTemplate<T>(){};
~CTemplate<T>() {};
};//TEST.CPP
template <class T>
void CTemplate<T>::MyFunc(T a)
{
int m;
m=1;
}//引用
....
CTemplate<int> mTemp3;
mTemp3.MyFunc(a);
....//报错内容
TestDlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CTemplate<int>::MyFunc(int)" (?MyFunc@?$CTemplate@H@@QAEXH@Z)
Debug/Test.exe : fatal error LNK1120: 1 unresolved externals请指教,在线等

解决方案 »

  1.   

    不要把代码放在cpp里面,都放在.h文件里面进行编译。目前的编译器不支持分离编译模板
      

  2.   

    补充:我指的是模板部分不要分开来写,都放在一个文件里实现。删掉Test.cpp
    //TEST.H
    template <class T>
    class CTemplate
    {
    public:
    void MyFunc(T a);
    CTemplate<T>(){};
    ~CTemplate<T>() {};
    };
    template <class T>
    void CTemplate<T>::MyFunc(T a)
    {
    int m;
    m=1;
    }
      

  3.   

    借用这地方问个问题。
    怎样把一负的浮点数如-1.30,转化成一个五位的ASCII串。(对应上面各个)
    请各位帮忙给解决一下
    是不是用Ssprintf( )?