2016-07-03 60 views
2

我不斷收到錯誤「期望的類名」{'token {「在C++問題中的基本繼承

我嘗試了多種不同的方法,我發現它們都沒有工作。如果有人能幫助我,我會非常感激。 我LinkedList.h文件

#ifndef LINKEDLIST_H 
#define LINLEDLIST_H 


#include <iostream> 
#include "Node.h" 

using namespace std; 

template <class T> 
class LinkedList: public Node 
{ 

private: 
    Node<T>* head; 
    Node<T>* current; 
    Node<T>* tail; 

public: 
    LinkedList(){ 
    } 

    virtual ~LinkedList(){ 
    } 
}; 

#endif 

和我Node.h文件

#ifndef NODE_H 
#define NODE_H 

#include <iostream> 

using namespace std; 

template <class T> 
class Node{ 

    private: 
    T data; 
    Node<T>* pNext; 

    public: 
    Node(){ 
     pNext = NULL; 
    } 

    ~Node(){ 
     delete this->pNext; 
    } 
}; 

#endif 
+3

從'Node'繼承的'LinkedList'沒有任何意義。 –

回答

5

Node是一個模板,而不是一個類型。 Node<T>是一種類型。使用

template <class T> 
class LinkedList: public Node<T> 
{ 
    ... 
}; 

PS

作爲設計選擇,它沒有任何意義,從Node<T>繼承LinkedList<T>。您應該能夠執行LinkedList<T>只需:

template <class T> 
class LinkedList 
{ 
    private: 
     Node<T>* head; 
     Node<T>* current; 
     Node<T>* tail; 
}; 
+0

你是一位聖人謝謝你soooooo! –

+0

特別注意PS。 –

+0

@DavidLattimerII,你有權授予聖徒嗎? :) :) 不用謝。 –