Your Song
also uses char*
where it should use std::string
.
It deletes this pointer in the destructor, but you haven't defined an assignment operator or copy constructor.
This makes all Song
s contain invalid pointers once you have resized an Album
.