Why is my destructor never called?
c++, memory-leaks
Solution
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.
Problem
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]; } ~B() { delete [] p; } f(); private: char *p; }; ``` For any reason the destructor is never called - why? I dont understand this.