一个简单的问题
一个关于模板的问题:
建立一个WIN32 Console应用程序, 建立如下的一个类:
头文件:
#if !defined(AFX_ARRAY_H__E68F7E88_038F_11D8_AFF1_D979D55B8E18__INCLUDED_)
#define AFX_ARRAY_H__E68F7E88_038F_11D8_AFF1_D979D55B8E18__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
template <class T>
class Array
{
public:
Array();
virtual ~Array();
};
#endif // !defined
实现文件:
(AFX_ARRAY_H__E68F7E88_038F_11D8_AFF1_D979D55B8E18__INCLUDED_)
template <class T>
Array<T>::Array()
{
}
template <class T>
Array<T>::~Array()
{
}
在主程序中声明如下:
Array<int> g_Array;
产生了如下错误:
DataStructure.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall Array<int>::~Array<int>(void)" (??1?$Array@H@@UAE@XZ)
DataStructure.obj : error LNK2001: unresolved external symbol "public: __thiscall Array<int>::Array<int>(void)" (??0?$Array@H@@QAE@XZ)
Debug/DataStructure.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
为什么会产生如下的错误?