14.4. Distinct Base Classes (Pattern 1)
When a multiply-derived class has base classes that are unrelated, we create an inheritance structure similar to the OMT diagram in Figure 14.2. Multiply-derived class D1_D2 inherits from both Derived1 and Derived2 (its direct bases), which in turn inherit from separate bases (Base1 and Base2, respectively). Class D1_D2 has no common bases. The important characteristics of this pattern include the following:
At least one class is multiply-derived.
Its direct bases (Derived1 and Derived2) have no common bases.
Each “side” of the hierarchy is publicly derived.
Each side of the hierarchy is a polymorphic type (has at least one virtual function in its top base, Base1 and Base2).
The sides need not be symmetrical; ...
Get Navigating C++ and Object-Oriented Design now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.