我一直在閱讀一個使用類的List(及其節點)的實現,我發現了一些我不太明白的東西。 下面是Node類的代碼,我不明白:結合&和*運營商
class Node {
private:
Data data;
Node* next;
public:
Node*& getNext();
};
Node*& Node::getNext()
{
return this->next;
}
什麼是* &到底是什麼?我沒有得到該方法返回的變量類型。
我想我現在就買下,以後我有這些行(類目錄內):
Node** node = &first;
node = &(*node)->getNext();
這是否意味着我在未來存儲的地址在節點*?
注意:第二個問題在評論中回答。感謝您的回覆。
這是對指針的引用。 –
當你認爲返回一個引用可能是一個好主意時,你應該總是提出兩個問題:1)這個東西是否被'Node'的用戶實際擁有? 2)引用是否永遠不會超過它所指的對象?如果兩個答案都是肯定的,通常只考慮返回一個參考。 –
這不是一個操作員。 – Puppy