Why is my destructor never called?

后端 未结 4 1433
温柔的废话
温柔的废话 2021-02-20 01:07

I have a base class A and a derived class B:

class A
{
public:
    virtual f();
};

class B : public A
{
public:
     B()
     {
         p = new char [100];
            


        
4条回答
  •  梦如初夏
    2021-02-20 01:35

    Your base class needs a virtual destructor. Otherwise the destructor of the derived class will not be called, if only a pointer of type A* is used.

    Add

    virtual ~A() {};
    

    to class A.

提交回复
热议问题