The destructor is responsible for clearing up all the resources an object owns. That includes calling delete
on pointers that require it. If your destructor does not do this, then you will get a memory leak.
If your objects has members with automatic storage duration, then the destructors of those members are called automatically. This is the foundation of RAII.