error: no matching function for call to `Game::HandleEvent(SDL_Event*)'
note: candidates are: void Event::HandleEvent(SDL_Event&)
I am confused a) why can't it find HandleEvent? I thought this was the entire idea of inheritance!
b) Why does it think I have sent a pointer when I have sent a reference?
You *are* sending a pointer. Putting the & in front of a variable gives you the address (making it a pointer). If you want a reference, just pass the variable normally and it will be converted to a reference automatically.