我的基类中有一个虚拟析构函数和一个数组.我怎样才能使它工作?

pur*_*uck 1 c++ virtual-destructor

例如:

class base
{
public:
  base()
  {
    // allocate memory for basearray
  }
  virtual ~base()
  {
    // delete basearray
  }

protected:
  float* basearray;
};

class derived1 : public base
{
public:
  derived1()
  {
    // allocate memory for derivedarray
  }
  ~derived1()
  {
    // delete derived array
  }

protect:
  float* derivedarray;
};

void main()
{
  derived1 d;

  ...

  base* pb = &d;

  ...

  // Delete base array? 
}
Run Code Online (Sandbox Code Playgroud)

我的基类中有一个虚拟析构函数和一个数组.如果派生类析构函数覆盖基类析构函数,则不会删除基类.什么是一个很好的解决方案?

Oli*_*rth 9

基类的析构函数自动调用,派生类的析构函数运行之后.