下列代码错在哪?
#include "stdafx.h"
template <class T>
class MyTemp
{
public:
MyTemp<T>(){};
~MyTemp<T>(){};
int getint();
};
class MyClass1
{
public:
int getint(){return 11;};
};
class MyClass2
{
public:
int getint(){return 12;};
};
int main(int argc, char* argv[])
{
MyTemp<MyClass1> c1;
MyTemp<MyClass2> c2;
printf("%d,%d\r\n",c1.getint (),c2.getint ());
return 0;
}
编译时的错误信息是:
TempTest.obj : error LNK2001: unresolved external symbol "public: int __thiscall MyTemp<class MyClass1>::getint(void)" (?getint@?$MyTemp@VMyClass1@@@@QAEHXZ)
TempTest.obj : error LNK2001: unresolved external symbol "public: int __thiscall MyTemp<class MyClass2>::getint(void)" (?getint@?$MyTemp@VMyClass2@@@@QAEHXZ)
Debug/TempTest.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.