请注意我的作业标签。与所有家庭作业一样,对实际编码的直接答案提供有用的建议是值得赞赏的。不过,请随意直接回答我的任何概念性问题。
您好,
我的教授为我们分配了一份双重的家庭作业清单,在我绝对需要帮助之前,我一直避免寻求帮助,我就是这样。
他为我们提供了头文件,然后我们必须为其创建一个类,并且必须完美地跟随头文件。他做复制构造函数的方式是他让我们编写一个辅助函数,我们只需要复制构造函数调用。
在正常情况下,我可以很容易地做到这一点,但这次他给了我们一个非常奇怪的辅助函数签名:
// copys chain at oldHead to newHead.
static void copy(Elem *&newHead, const Elem *oldHead)
这是为了复制一个名为Elems的结构链:
struct Elem
{
Information info;
Elem *next;
Elem *back;
};
我想我对整个Elem *&因为,从我记忆中,不要&和*取消对方?
谢谢,非常感谢任何帮助!希望这将有助于我未来的其他人:)
答案 0 :(得分:2)
static Elem* copy(const Elem *oldHead)
可能是一个潜在的功能。你拿起旧头并返回新的克隆头。
他选择的是通过引用传递指针。
如果只是
static void copy(Elem * newHead, const Elem *oldHead)
{
newHead = new Elem();
}
像上面这样的东西。对函数外部看不到对newHead的任何更改。
下面是相同的。 x按值传递。在 Addten 功能返回后,忘记对x的任何更改。你的x恰好是一个指针。
void Addten( int x )
{
x = x + 10;
}
int x = 10;
Addten( x );