Использование шаблона C ++ - PullRequest
0 голосов
/ 10 мая 2010

Если у меня есть определение шаблона, подобное приведенному ниже, может ли кто-нибудь предоставить пример кода, как я мог бы на самом деле создать его экземпляр с двумя моими собственными классами?

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

Спасибо.

Ответы [ 2 ]

5 голосов
/ 10 мая 2010

Вы не можете создать его экземпляр, если не предоставите определение для конструктора. И вы не сможете использовать его, если не предоставите определения для двух других функций. Если бы вы предоставили их, вы бы создали что-то вроде:

LookUpTable <std::string, int> t;

или если у вас есть свои классы A и B:

LookUpTable <A, B> t;

Похоже, что это какая-то карта, и в этом случае вы также можете использовать std :: map:

#include <map>
#include <string>

std::map <std::string, int> m; 
2 голосов
/ 10 мая 2010

1) Так как это шаблонный класс, убедитесь, что ваш конструктор и функции объявлены в заголовок.

2) Проверьте это так:

LookUpTable <YourClass1, YourClass2> table;

3) Примечание: вы есть опечатка, Tl вместо T1. В некоторых шрифты l выглядят почти как 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...