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)
关于如何更好地理解这一点的任何意见或建议将不胜感激.谢谢.
归档时间: |
|
查看次数: |
47 次 |
最近记录: |