virtual Destructor: void ~Path (void)All of the
Pointson aPathare created bycreate_new<Point>(), which allocates them dynamically on the free store. Therefore, the destructor callsdelete()on all of the pointers onpoints. Following this, it callspoints.clear()andconnectors.clear().draw_colorandfill_colormay or may not have been allocated on the free store, so~Path()checks this first, and deletes them, if they were. Then, it sets them to 0.