請注意我的家庭作業標記。就像所有的家庭作業一樣,對實際編碼的直接答案有幫助的建議值得讚賞。不過,請隨時回答我的任何概念性問題。奇怪的複製構造函數的雙向鏈表
你好,
我的教授給我們留了一個雙向鏈表的功課,我是避免尋求幫助,直到我絕對需要它,我在這裏。
他提供了我們的頭文件,然後我們必須爲此做一個類,並且必須完全遵循頭文件。他做他的複製構造函數的方式是他讓我們編寫一個幫助器函數,我們只需複製構造函數調用。
我能做到這一點很容易,在正常的情況下,但此時他已經給了我們的輔助函數了非常奇怪的簽名:
// copys chain at oldHead to newHead.
static void copy(Elem *&newHead, const Elem *oldHead)
這是複製稱爲elems的結構鏈:
struct Elem
{
Information info;
Elem *next;
Elem *back;
};
我想我主要是困惑,什麼全ELEM * &業務,因爲,從我記得,不要&和*互相抵消?
謝謝,任何和所有的幫助真的很感激!希望這將有助於其他人在我的位置在未來:)
在C++中,這是*指針*的引用。 –
在*表達式*中,'&'是您已知的操作符地址。在*聲明*中,'&'表示引用聲明。這些不相關的概念不幸的是共享相同的符號。如果你能理解這一點,那麼其他人關於'Elem *&newHead'作爲Elem指針的參考意見應該是合理的。 –
http://www.parashift.com/c++-faq-lite/references.html –