C++ Refactoring

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

204

Page 226
Image 226
Slick V3.3 manual 35. C++ Refactoring Push Down Selecting Members to Move