Originally Posted by
potatoCode
Sometimes thinking things backwards helps.
What I mean by this is that you set aside your efforts to understand the conceptual term polymorphism for now. Instead, try to write a virtual function used in an inheritance hierarchy. I think with this approach, you can focus your synergy on more syntactical side of the language, and solidify your understanding towards the semantic side from it.
So the next sensible thing for me to do is to ask you if you know how to write a virtual function using Foo as a name of the base class and Bar as a name of the derived class with a virtual function named Print that takes no parameter.
Can you show, in code, that you could do this?