such a small, uncommented and not clean, regarding code design, example won't teach him much
Well, it's pretty straight forward and I honestly didn't think it would require comments. Considering that's a similar piece of code out of "Doom 3"'s source, I wouldn't call it "unclean", considering "Doom 3" had some of the cleanest, most efficient code ever written.
How does it fit in this topic? Containers for data, which was the main issue in the program he wrote. - Preventing the usage of global variables.
EDIT: Also, polymorphism is the base of object oriented programming, so saying:
it's a better code design to avoid polymorphism where ever possible
would be saying to avoid O.O.P., would it not?
or better said, use it only when really needed and not as general formula.
Doesn't that go for almost all techniques?
Programming is much more than polymorphism and debugging, but we are not talking about the definition of programming; we are talking about good programming structure and efficient, effective code. My example also showed pointer, abstract class, and inheritance usage. Not only that, but the usage of a class to store functions and variables in general.