How does this do what it does (C++ classes, use of colon)

I can accept the fact that it's poor code :wink:

Two different objects of different derived classes and the show method will do different things. I might see it wrong.

I will try to read the link later.