Специализация шаблонного класса - PullRequest
3 голосов
/ 22 декабря 2010

Я только что создал шаблон класса

template< typename T >
class LinkedList {
private:
    struct LinkedListElement {
        T *m_data;
        LinkedListElement *m_next;
    };
    LinkedListElement *head;
public:
    void insert(T *elem);
    void remove(T *elem);
    T *find(const char *name);
};

и я хочу настроить то, что метод find делает для определенного класса.

Итак, когда я делаю специализацию по шаблону, нужно ли мне переписывать код реализации шаблона отверстия или просто * находить (как при создании подклассов)?

Это первый раз, когда я создаю свой собственный шаблон;)

Помощь будет оценена.

1 Ответ

8 голосов
/ 22 декабря 2010

Для этого случая вы можете специализировать только функцию-член

template<> inline MyType *LinkedList<MyType>::find(const char *name) { 
    /* ... */ 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...