我的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