c++ - 使用类模板的问题

标签 c++ visual-studio-2010 templates

我创建了一个包含 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/

相关文章:

.net - 将 Resharper6 与 Razor 一起使用时出现的问题

c# - 如何在运行时在 visual studio 中查看静态变量的值

c++ - std::pair 替换因 std::size_t 失败

c++ - 我可以制作一个所有类都可以使用的模板 operator<< 重载吗? C++

c++ - 运算符重载优先级

c++ - 成员模板变量特化

c++ - 用列号 boost spirit 动态词法分析器?

c++ - Windows 上的 CMake zlib 依赖错误

c# - 在 C# 中将字符串拆分为 char 并在其后添加 "......"

c++ - 为什么在初始化 std::vector 时不能使用模板整数?