#include <cstdlib>
#include <iostream>
using namespace std;
const unsigned long MAX_SIZE = 20;
typedef int ItemType;
class Heap {
private:
ItemType array[MAX_SIZE];
int elements; //how many elements are in the heap
public:
Heap()
~Heap()
bool IsEmpty() const
bool IsFull() const
Itemtype Retrieve()
void Insert(const Itemtype&)
};
比方說,我有這個作爲我的頭文件。在我的這個實現中,執行Heap()構造函數和〜Heap()析構函數的最佳方法是什麼。如何破壞陣列
我
Heap::Heap()
{
elements = 0;
}
Heap::~Heap()
{
array = NULL;
}
我想知道這是否是破壞和建設在這種情況下,一個數組的正確方法。
你是什麼意思破壞?把它歸零?或者你的意思是釋放?如果你的意思是後者,那麼你不必這樣做,因爲這個數組將被分配到堆棧上並在調用Heap-dtor時釋放。 – Christian 2009-12-10 08:23:44
它可以在堆棧上分配,也可以不分配。這完全取決於如何創建堆實例。 – 2009-12-10 10:37:07
你說得對,我應該更精確,並說「當堆實例超出範圍/取消分配時,數組將自動釋放」 – Christian 2009-12-10 13:07:58