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.