为什么会出错,是不是vc6.0的问题?
//dynamicclass.h
#ifndef DYNAMICCLASS_CLASS
#define DYNAMICCLASS_CLASS
template <class T>
class DynamicClass
{
public:
DynamicClass(const T& m1, const T& m2);
DynamicClass(const DynamicClass <T> &obj);
~DynamicClass(void);
DynamicClass<T>& operator = (const DynamicClass<T>& rhs);
private:
T member1;
T *member2;
};
#endif
//dynamicclass.cpp
#include <iostream>
#include "dynamicclass.h"
using namespace std;
template <class T>
DynamicClass<T>::DynamicClass(const T& m1, const T& m2)
{
member1=m1;
member2=new T(n2);
cout << "constructor:" << member1 << '/'
<< *member1 << endl;
}
template <class T>
DynamicClass<T>::DynamicClass(const DynamicClass<T>& obj)
{
member1=obj.member1;
member2=new T(*obj.member2);
cout << "copy constructor:" << member1 << '/'
<< *member2 << endl;
}
template <class T>
DynamicClass<T>::~DynamicClass(void)
{
cout << "destructor:" << member1 << '/'
<< *member2 << endl;
delete member2;
}
template <class T>
DynamicClass<T>& DynamicClass<T>::operator = (const DynamicClass<T>& rhs)
{
member1=rhs.member1;
member2=*rhs.member2;
return *this;
}
//dynamictest.cpp
#include <iostream>
#include "dynamicclass.h"
using namespace std;
int main(void)
{
DynamicClass<int> obj_1(1,100);
return 0;
}
//出现编译错误不知是什么原因,请大家帮忙。以下是编译错误
--------------------Configuration: dynamic - Win32 Debug--------------------
Linking...
dynamictest.obj : error LNK2001: unresolved external symbol "public: __thiscall DynamicClass<int>::~DynamicClass<int>(void)" (??1?$DynamicClass@H@@QAE@XZ)
dynamictest.obj : error LNK2001: unresolved external symbol "public: __thiscall DynamicClass<int>::DynamicClass<int>(int const &,int const &)" (??0?$DynamicClass@H@@QAE@ABH0@Z)
Debug/dynamic.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
dynamic.exe - 3 error(s), 0 warning(s)