【发布时间】:2012-10-13 17:27:07
【问题描述】:
我一直在阅读使用类的 List(及其节点)的实现,并且发现了一些我不太了解的东西。 这是Node类中我看不懂的代码:
class Node {
private:
Data data;
Node* next;
public:
Node*& getNext();
};
Node*& Node::getNext()
{
return this->next;
}
*& 到底是什么?我不知道该方法返回了什么样的变量。
我想我现在明白了,稍后我有这些行(在类 List 内):
Node** node = &first;
node = &(*node)->getNext();
这是否意味着我将 next 的地址存储在 node* 中?
注意:第二个问题已在 cmets 中回答。感谢您的回复。
【问题讨论】:
-
这是对指针的引用。
-
当您认为返回引用可能是一个好主意时,您应该始终提出两个问题:1) 返回的东西实际上是否归
Node的用户所有? 2) 引用永远不会比它所引用的对象寿命长吗?通常只在两个答案都是肯定的情况下才考虑返回参考。
标签: c++ class reference linked-list operators