为什么Node类中的Node指针不需要模板参数(例如在链表中)?

use*_*386 5 c++ templates pointers linked-list

Node结构中我不知道为什么我应该使用Node * forward而不是Node<T> * forward.同样的问题适用于Node * backward.起初,我认为这是因为前进/后退永远不需要在他们的节点内"窥视"......他们只是直接的节点指针,他们不关心那里有什么.但后来,我发现自己通过调用等方式进入节点T temp = last->backward->data,并且工作得很好.所以我的一个理论就在窗外.

template <typename T>
struct Node {
public:
    T data;
    Node<T> * forward { nullptr };  //<-This works...but
    Node * backward { nullptr };    //<-I've been told no <T> is right
};

template <typename T>
class DoublyLinkedList{
public:
    /*
     ...methods...
     */
private:
    unsigned int size {0};
    Node<T> * first {nullptr};
    Node<T> * last {nullptr};
};
Run Code Online (Sandbox Code Playgroud)

关于如何更好地理解这一点的任何意见或建议将不胜感激.谢谢.