我创建了一个包含 map 的模板。 当我尝试创建该模板的实例时,我遇到了构造函数和析构函数的链接问题。 此外,当我尝试在 main 中创建一个实例时,它会在调试时跳过该行,甚至不会在本地列表中显示它。 它不编译“数据库数据库;”除非我在 db 之后添加“()”。 (这就是我尝试在 main 中启动实例的方式)。
代码:
:
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()
{}
谢谢
最佳答案
直接在头文件中添加模板类(和函数)的实现:
template <class keyVal,class searchVal, class T>
class DataBase
{
private:
map<keyVal,pair<searchVal,T*>*> DB;
public :
DataBase() {};
virtual ~DataBase() {};
};
关于c++ - 使用类模板的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3752251/