If a member of the super class is used by multiple subclasses, then the member is moved to all of the
subclasses that access that member, so that when the refactoring is done, everything will compile. Any
member that is explicitly accessed through an instance of the super class (or an instance that is cast to
the super class) cannot be moved. Moving this will break the code.
Constructors and destructors cannot be moved. Members can only be moved one level at a time.
Figure 6.35. C++ Refactoring: Push Down - Selecting Members to Move
C++ Refactoring
204