teaching examples for inheritance and polymorphism
I was asked to teach ?inheritance? and ?polymorphism? in C++.
Usually, I would not approach teaching this way, but instead
teach ?C++ class design? and then show what's appropriate,
possibly teaching delegation before inheritance. But now the
time is limited, so I cannot teach everything from ground up
in my way, and I still want to answer those questions as asked.
My problem is finding good teaching examples and exercises.
Somehow, I hate teaching inheritance by ?a cow is an animal?
or ?a rectangle is a square?, or polymorphism by
?cow.makeSound()? versus ?cat.makeSound()?, because those
examples seem so artificially constructed for teaching but
rarely arise in real-world C++ applications.
Is anyone aware of examples where inheritance or
polymorphism really shines in C++, that are taken from
real-life applications of C++ or are something that can be
obviously useful in C++ programming, but are also rather
small and do not require too much knowledge of C++ (i.e.
only require knowledge of classes and derivation of classes
but not of, say, generics)? Some simple examples where
inheritance or polymorphism really makes sense?