Introduction to OOP: Chapter 12: Implications of Inheritance
Unsafe Reverse Polymorphism in C++
Reverse polymorphism is dangerous in C++.
Besides the slicing problem, values themselves do not maintain class
Thus, a value does not ``know'' what class it is from.
But conversions can nevertheless be performed using casts, and are not checked.
Window * x;
TextWindow * y;
y = (TextWindow *) x;
Intro OOP, Chapter 12, Slide 20