我创建了一个包含地图的模板。 当我尝试创建该模板的实例时,我遇到了构造函数和析构函数的链接问题。 另外,当我尝试在main中创建一个实例时,它会在调试时跳过该行,甚至不会在本地列表中显示它。 它不编译“DataBase db;”除非我在db之后添加“()”。 (这就是我尝试在main中启动实例的方式)。
代码:
H:
template <class keyVal,class searchVal, class T>
class DataBase
{
private:
map<keyVal,pair<searchVal,T*>*> DB;
public :
DataBase();
virtual ~DataBase();
};
CPP:
#include "DataBase.h"
template <class keyVal,class searchVal, class T>
DataBase<keyVal,searchVal,T>::DataBase()
{}
template <class keyVal,class searchVal, class T>
DataBase<keyVal,searchVal,T>::~DataBase()
{}
感谢
答案 0 :(得分:5)
直接在头文件中添加模板类(和函数)的实现:
template <class keyVal,class searchVal, class T>
class DataBase
{
private:
map<keyVal,pair<searchVal,T*>*> DB;
public :
DataBase() {};
virtual ~DataBase() {};
};