我的C++有点生疏,但我制作了一个反转链接列表的程序,现在我正在尝试为它编写适当的析构函数,但我不知道要摧毁什么。这里是我的班级定义:C++析构函数示例
class LinkedList
{
private:ListElement *start;
public:LinkedList();
public:void AddElement(int val);
public:void PrintList();
public:void InvertList();
};
class ListElement
{
public:int value;
public:ListElement * link;
public:ListElement(int val);
public:ListElement();
};
class Stack
{
private:ListElement ** stack;
private:int index;
public:Stack(int size);
public:void push(ListElement * le);
public:ListElement * pop();
};
该堆栈用于当我反转列表。 无论如何... 我将如何去写这些析构函数? 我在想:
对于ListElement使值0和链接0(NULL)。
对于LinkedList,检查元素并为它们调用ListElementDestructor。
我不是很确定这件事,因为据我所知,析构函数会自动调用成员对象的析构函数,所以在这种情况下只会为LinkedList写一个空的析构函数就足够了吗?我不知道...这就是为什么我要求
对于堆栈我不知道...在列表被反转后指针已经是0(NULL),因为它们全部都是poped。
我有点困惑。 任何人都可以帮忙吗? 预先感谢您。
只是交换元素之间的指针方向而不是使用堆栈更容易吗? – Yacoby 2010-01-31 11:52:56
重复私人和公共关键字是不必要的。只是做 私人: //私有变种声明 公共: //公共var声明 – batbrat 2010-01-31 11:56:22
我还建议使listElement的“链接”成员专用,并提供一个只读的访问权限到下一个)方法 – davka 2010-01-31 12:32:24