我有这个代码,它接受一个由外部指针组成的堆栈和带有链接列表的内部指针,但我不知道它是否正在制作深度或浅层副本。如果我没有足够的信息,我很抱歉,我认为这是你需要说的。谢谢!
void StackClass::operator =(const StackClass& orig)
{
//stack = nullptr;
node* temp = orig.stack;
if (!orig.IsEmpty())
{
while (temp != NULL)
{
stack = orig.stack; // sets thew new stack equal to the old stack's value
temp = temp->next;
} // end while loop
} // end if
else
{
stack = nullptr; // sets it to an empty list because there's no values
} // end else
}
答案 0 :(得分:1)
在这种情况下,它只是复制指针,即浅拷贝生效。
深度复制意味着而不仅仅是复制指针,而是为新指针显式分配内存,并将传入指针的内容存储到代码恰好丢失的内容中......