Destructor

void ~Path(void)

virtual Destructor

All of the Points on a Path are created by
create_new<Point>(), which allocates them dynamically on
the free store. Therefore, the destructor calls delete() on all
of the pointers on points. Following this, it calls
points.clear() and connectors.clear().
draw_color and fill_color may 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.