You can use AlbumPointer to store a guarded pointer to Album or one of the subclasses (use template parameter). More...
The pointer will be set to 0 when the album object is deleted.