如果我有一個如下所示的模板定義,有人可以提供一個代碼示例,我將如何實際使用兩個自己的類來實例化這個實例?C++模板的使用
template <class T1, class T2>
class LookUpTable {
public:
LookUpTable();
void set(T1 x, T2* y);
T2* get(T1 x);
};
謝謝。
如果我有一個如下所示的模板定義,有人可以提供一個代碼示例,我將如何實際使用兩個自己的類來實例化這個實例?C++模板的使用
template <class T1, class T2>
class LookUpTable {
public:
LookUpTable();
void set(T1 x, T2* y);
T2* get(T1 x);
};
謝謝。
除非您提供構造函數的定義,否則不能實例化它。除非您提供其他兩個功能的定義,否則您將無法使用它。如果你沒有提供給他們,你會實例化它是這樣的:
LookUpTable <std::string, int> t;
,或者如果你有自己的類A和B:
LookUpTable <A, B> t;
它看起來這是圖的某種,在這種情況下,你不妨使用std ::地圖:
#include <map>
#include <string>
std::map <std::string, int> m;
1),因爲這是一個模板類, 確保你的構造和功能 在012聲明標題。
2)實例化這樣的:
LookUpTable <YourClass1, YourClass2> table;
3)注意:您 有一個錯字,鉈,而不是T1。在一些 字體l看起來幾乎是1.
這就是我認爲......我不確定的事情是無參數的構造函數定義(和類名稱)不包含任何類型參數,我來自C#背景。推測構造函數的實現看起來像'LookUpTable(){* initialise internals *}'? – MalcomTucker 2010-05-10 09:13:20
@Malcolm是的,儘管您可能還想調查構造函數初始化列表。正如我所建議的,如果這不是學習練習,請使用std :: map。 – 2010-05-10 09:15:37
這是一個學習練習,感謝您的幫助:) – MalcomTucker 2010-05-10 09:24:28