#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