2010-12-22 149 views
3

我剛剛創建了一個模板類專業模板類

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方法確實爲一定的階級。所以,當我做我的模板專業化時,我是否必須重新寫洞模板實現代碼或只是t * find(就像子類化時)?

這是我第一次創建自己的模板;)

幫助,將不勝感激。

+0

它之所以被稱爲「類模板」,因爲它是一個模板,而不是一類。 – sbi 2010-12-22 17:40:52

回答

8

對於這種情況,你可以專注成員函數只

template<> inline MyType *LinkedList<MyType>::find(const char *name) { 
    /* ... */ 
} 
+0

你能解釋爲什麼只有這種情況?哪些案件不適合? – nacho4d 2010-12-22 18:19:48