在学习链表的时候,我们知道结点是动态生成的,如果在程序结束之前不释放内存,就会造成内存泄漏。虽然我们已经编写了成员函数Destroy来删除所有动态生成的结点,但是如果我们不知道这个链表对象何时不再使用,那么调用Destroy的时机对我们来说就是个麻烦了。如果过早地调用,则后面的程序可能会出错。既然有构造函数能随着对象的创建而自动被调用,那么有没有一种函数能随着对象的消亡而自动被调用呢?有!那就是析构函数(Destructor)。
析构函数是一种随着对象消亡而自动被调用的函数,它的主要用途是释放动态申请的资源。它没有返回类型,没有参数,也没有重载。析构函数的函数名也是指定的,是在构造函数名之前加一个“~”符号。
下面我们为程序15.4.2添上析构函数的功能:(程序15.5)
//node.h
#include <iostream>
using namespace std;
class Node//定义一个链表结点类
{
public:
Node();//构造函数的声明
Node(Node &n);//结点拷贝构造函数
Node(int i,char c='0');//构造函数重载1
Node(int i,char c,Node *p,Node *n);//构造函数重载2
析构函数是一种随着对象消亡而自动被调用的函数,它的主要用途是释放动态申请的资源。它没有返回类型,没有参数,也没有重载。析构函数的函数名也是指定的,是在构造函数名之前加一个“~”符号。
下面我们为程序15.4.2添上析构函数的功能:(程序15.5)
//node.h
#include <iostream>
using namespace std;
class Node//定义一个链表结点类
{
public:
Node();//构造函数的声明
Node(Node &n);//结点拷贝构造函数
Node(int i,char c='0');//构造函数重载1
Node(int i,char c,Node *p,Node *n);//构造函数重载2










