ok, 所以我得到了一些複雜的程序,模擬單元學生,單位和學生的uni系統。C++析構函數導致崩潰的
學生存儲在二叉搜索樹中, 單元存儲在標準列表中。
學生有一個單元指針列表,用於存儲他/她所登記的單元 單元有一個學生指針列表,用於存儲在該單元中註冊的學生。
單元集合(在列表中存儲單元),作爲主函數所在的靜態變量,以及學生的二進制搜索樹。
當它的finaly時間關閉程序時,我調用每個的析構函數。但在某個階段,在單元端的破壞程序期間,
ClassAllocation.exe中的0x002e4200未處理的異常:0xC0000005:訪問衝突讀取位置0x00000000。
UnitCollection析:
UnitCol::~UnitCol()
{
list<Unit>::iterator itr;
for(itr = UnitCollection.begin(); itr != UnitCollection.end();)
{
UnitCollection.pop_front();
itr = UnitCollection.begin();
}
}
單位析構函數
Unit::~Unit()
{
}
現在我有對事物的學生側相同八九不離十問題
BST的析構函數
void StudentCol::Destructor(const BTreeNode * r)
{
if(r!= 0)
{
Destructor(r->getLChild());
Destructor(r->getRChild());
delete r;
}
}
StudentCol::~StudentCol()
{
Destructor(root);
}
學生析構函數
Student::~Student()
{
}
所以是任何幫助,將不勝感激
在BTreeNode析構函數中發生了什麼? – 2010-05-23 03:33:35