1. 注意要把被赋值的对象里面的链表清除干净,不能单单pHead=0
while(pHead=pCurrent){
pHead=pHead->next;
delete pCurrent;
}
2. 有了1的代码之后,要注意一个特殊情况:
a=a;
给自己赋值时,会造成把内部的链表全部清除,从而造成了空表的状态。
解决方法是进行比较:
A& A::operator=(const A &a){
if(this=&a) return *this;//返回this指针地址。
……
}
while(pHead=pCurrent){
pHead=pHead->next;
delete pCurrent;
}
2. 有了1的代码之后,要注意一个特殊情况:
a=a;
给自己赋值时,会造成把内部的链表全部清除,从而造成了空表的状态。
解决方法是进行比较:
A& A::operator=(const A &a){
if(this=&a) return *this;//返回this指针地址。
……
}
