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