如果我有一个如下所示的模板定义,有人可以提供一个代码示例,以便我如何使用我自己的两个类实际实例化这个实例吗?
template <class T1, class T2>
class LookUpTable {
public:
LookUpTable();
void set(T1 x, T2* y);
T2* get(T1 x);
};
感谢。
答案 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。