我创建了一个包含地图的模板。 当我尝试创建该模板的一个实例时,我遇到了构造函数和析构函数的链接问题。 另外,当我尝试在主体中创建一个实例时,它会在调试时跳过该行,甚至不会在本地列表中显示它。 它不会编译“DataBase db”除非我在db之后加上“()”。 (这是我尝试主要启动实例的方式)。使用类模板的问题
的代码:
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()
{}
感谢
在您的问题中包括错误将允许更准确的响应。 – 2010-09-20 14:14:47
相关:另请阅读[this](http://stackoverflow.com/questions/3749099/why-should-the-implementation-and-the-declaration-of-a-template-class-be-in-the-s/3749115#3749115)回答。 – 2010-09-20 14:15:34
不要编写'Database db();'来创建一个数据库。它不这样做,但是声明一个返回一个的函数。 – 2010-09-20 14:17:33