Your still not checking for memory errors when you use 'new'.
if Remaining_Memory is Greater Than Max_Memory then return TRUE.Code:if (remainingMemory > MAX_MEMORY)
Is that right?
BobCatPod::addSong() will only add a songnode to the head of the list.
It will not append a song to the list. so if you call it twice then you will have a memory leak.
Is there any way you can use std::list<>. Then all you would have to do is work with the songs. all the list management will be handled for you.