所以我试图在 C++ 中实现磨链表的运行
template<class T>
class Node
{
private:
Node *next;
T item;
public:
Node(T item)
: item(item)
{
this->next = NULL;
}
Node<T> add(T item) {
this->next = new Node(item);
return *this->next;
}
bool hasNext()
{
return this->next == NULL;
}
Node<T> getNext()
{
return *this->next;
}
T value()
{
return this->item;
}
};
void main()
{
Node<int> node(3);
node.add(3).add(4);
cout << node.value();
cout << node.getNext().value();
cout << node.getNext().getNext().value();
cin.get();
}
但我无法让它工作。特别是本节:
node.add(3).add(4);
cout << node.value();
cout << node.getNext().value();
cout << node.getNext().getNext().value();
如果我将我的add
andgetNext
函数更改为 returnNode<T>*
而不是Node<T>
,它可以正常工作。但是为什么取消引用会导致代码中断?我认为.
符号比 更有意义->
,但我无法让它工作。我究竟做错了什么?