c++类的析构函数
每个类都有构造函数和析构函数。
其中,构造函数在定义对象时被调用,析构函数在对象释放时被调用。
如果用户没有提供构造函数和析构函数,系统将提供默认的构造函数和析构函数。
析构函数
析构函数在对象超出作用范围或使用delete运算符释放对象时被调用,用于释放对象占用的空间。
如果用户没有显式地提供析构函数,系统将提供默认的析构函数。
析构函数也是以类名作为函数名,与构造函数不同的是,在函数名前添加一个“~”符号,标识该函数是析构函数。
析构函数没有返回值,甚至void类型也不可以;
析构函数也没有参数,因此析构函数是不能重载的。
这是析构函数与普通函数的最大区别。
Error"引发了异常;读取访问权限冲突。r是0xDDDDDDDD"
!!!析构函数不应该出现在main函数中!!!
析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。
析构函数在每个类必须有,需要定义一个或系统默认提供一个,但不能出现在main()函数里,
否则(析构函数出现在main函数中)就会因为重复调用析构函数而报错:
"引发了异常;读取访问权限冲突。"
“r是0xDDDDDDDD”
…
//Release函数实现,递归思想。
template <class T>
void Tree<T>::ReleaseTree(Node<T>* R)
{
if (R != NULL)
{
ReleaseTree(R-