14.3. Multiple Inheritance Characteristics

Before we embark on our journey through the structural patterns of multiple inheritance, we need to define a few terms for you. This section defines ambiguities and dominance and shows you how multiple inheritance affects polymorphism in program designs. These concepts will help you understand the multiple inheritance patterns in the next section.

Ambiguities

Unlike single inheritance, multiple inheritance has the potential for ambiguities. Here's a simple example.

class Window {                  // class library 
private:
   . . .
public:
   void resize();               // resize a Window
   . . .
};

class Font {                    // class library
private:
   . . .
public:
   void resize();               // resize a Font
   . . .
};

A Window class has a resize() function that changes ...

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.