S
Stefan Ram
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?
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?