我目前正試圖在列表模板類中使用列表類的私有節點結構實現排序算法。我使用了一些私有的遞歸函數,它返回一個指向節點類型的指針,導致g ++給我一個聲明錯誤。這是我有什麼樣 -聲明模板類中的結構,未定義成員函數
template<class T>
class SList
{
private:
struct NODE
{
T* elem;
NODE* next;
} *_head, *_tail;
NODE* sort(NODE* node);
public:
//other declarations...
}
template<class T>
NODE* SList<T>::sort(NODE* node) //Error: 'NODE' does not name a type
{
//sorting algorithm
}
這是c + +的限制還是我錯過了什麼?
您需要添加'typename'因爲'Node'是一個依賴類型 –
正確,好點。我會補充一點。 – Agentlien
啊謝謝!我也遇到了一個錯誤,我在模板聲明後添加了typename。 編輯:打敗我吧 – Lindenk