C ++模板用法

时间:2010-05-10 08:59:23

标签: c++ templates

如果我有一个如下所示的模板定义,有人可以提供一个代码示例,以便我如何使用我自己的两个类实际实例化这个实例吗?

template <class T1, class T2>
class LookUpTable { 
public:
    LookUpTable(); 
    void set(T1 x, T2* y);
    T2* get(T1 x);
};

感谢。

2 个答案:

答案 0 :(得分:5)

除非您为构造函数提供定义,否则无法对其进行实例化。除非您提供其他两个函数的定义,否则您将无法使用它。如果你确实提供了它们,你可以实例化它:

LookUpTable <std::string, int> t;

或者如果您有自己的A和B类:

LookUpTable <A, B> t;

看起来这是某种地图,在这种情况下你也可以使用std :: map:

#include <map>
#include <string>

std::map <std::string, int> m; 

答案 1 :(得分:2)

1)因为这是一个模板类,     确保你的构造函数和     函数在中声明     头。

2)像这样实例化:

LookUpTable <YourClass1, YourClass2> table;

3)注意:你     有一个错字,Tl而不是T1。在一些     字体l看起来几乎像1。