请注意我的家庭作业标记。就像所有的家庭作业一样,对实际编码的直接答案有帮助的建议值得赞赏。不过,请随时回答我的任何概念性问题。奇怪的复制构造函数的双向链表
你好,
我的教授给我们留了一个双向链表的功课,我是避免寻求帮助,直到我绝对需要它,我在这里。
他提供了我们的头文件,然后我们必须为此做一个类,并且必须完全遵循头文件。他做他的复制构造函数的方式是他让我们编写一个帮助器函数,我们只需复制构造函数调用。
我能做到这一点很容易,在正常的情况下,但此时他已经给了我们的辅助函数了非常奇怪的签名:
// 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 –