我有一個鏈接列表,我保存的數據,以及一個指向下一個節點,Node<T>* next
,像這樣:如何讓operator ++進入鏈表中的下一個節點指針?
template <class T>
struct Node
{
T data;
Node<T>* next;
};
的事情是我想提出這樣的遞增運算符,所以它返回我節點的前一個值,但增加引用。所以,如果我這樣做
Node<int>* someNode = someList.SomeNode();
Node<int>* tmp = someNode++;
tmp
將是原來的someNode
值,但someNode
會someNode->next
。
是否可以在結構中放置一個運算符?我試圖去尋找如何去做,但是我沒有和運營商打交道,所以我不知道該怎麼做。
「是否可以在結構中放置一個運算符?」是。記住,在C++中,結構可以具有成員函數,就像一個類。 – drescherjm
結構相當於一個類,但是對於兩件事情來說;默認訪問修飾符是公共的,並且默認情況下繼承也是公共的。其他的完全一樣。 –
謝謝,但我仍然無法做someNode ++;成員Michael Krelin告訴我。原因是someNode是一個指針節點 *沒有節點,如果我嘗試* someNode ++ MVC告訴我我不能轉換 –
freesoul