所以,基本上,我正在做作业,我有一个包含多项式系数和指数的链表。当不包含复制 c-tor 时,退出 main(析构函数)时代码会崩溃。使用 copy c-tor 它不会发生,但我想知道为什么因为我没有在任何地方明确调用 copy c-tor。这只是一段代码。Coef 函数将带有参数 exp 和 coef 的节点添加到列表中,因此我认为不需要包含它。
CPList :: ~CPList ()
{
while (!isEmpty())
deleteFromHead();
}
void CPList :: deleteFromHead ()
{
CPNode* tmp=head;
if (head==tail)
head=tail=NULL;
else head=head->next;
delete tmp;
}
CPList* CPList :: mul (CPList p1, CPList p2)
{
CPList* res = new CPList;
CPNode *first, *second;
for (first=p1.head; first!=NULL; first=first->next)
for (second=p2.head; second!=NULL; second=second->next)
res->coef(first->exp+second->exp, first->coef*second->coef);
res->check();
return res;
}
它在这段代码之后的右括号处崩溃。
int main ()
{
...
ptr=p3.mul(p1, p2);
ptr->printall();
}
当包含 copy c-tor 时,它可以正常工作。