读书人

一个关于模板的有关问题

发布时间: 2012-01-11 22:28:46 作者: rapoo

一个关于模板的问题
我用多文件结构设计一个类(即分别把类声明和类定义防在.h和.cpp文件中),然后在
main函数中应用类,调用成员函数,编译没错,但链接出错.来位高手指点一下啊
代码如下:
///////////////.h文件
template <typename T>
struct Node
{
.....
};
template <typename T>
class List
{
.....
};
#endif
////////////////.cpp文件
#include "List.h "
#include <iostream>
using namespace std;
template <typename T>
List <T> ::List(){}
////////////////main.cpp
#include "List.h "
#include <iostream>
using namespace std;
void main()
{
List <int> list;//调用无参构造函数
}
出错信息如下:
--------------------Configuration: List - Win32 Debug--------------------
Compiling...
List.cpp
Skipping... (no relevant changes detected)
main.cpp
Linking...
main.obj : error LNK2001: unresolved external symbol "public: __thiscall List <int> ::List <int> (void) " (??0?$List@H@@QAE@XZ)
Debug/List.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...

List.exe - 2 error(s), 0 warning(s)


[解决办法]
设计模板一般把类函数的声明和定义(实现)都放到头文件中。
[解决办法]
楼上正解.
[解决办法]
现在的编译器不支持模版的接口实现分离编译...
除非支持export,...
还是写到头文件中吧~

读书人网 >VC/MFC

热点推荐