14.2. Multiple Inheritance Format

Here's the format for multiple inheritance.

class Derived :    [virtual] [access_type] Base1, 
                   [virtual] [access_type] Base2,    . . .
                   [virtual] [access_type] BaseN { . . . };
  • Base1, Base2, BaseN are direct bases of Derived and must have distinct names.

  • An access_type may be private, protected, or public and follows the same access rules as single inheritance.

  • The access_type does not have to be the same for each base, and the default is private.

  • The keyword virtual is optional and specifies a shareable base. We discuss virtual base classes on page 688.

  • Member functions or data that have the same name in Base1, Base2, or BaseN are potential ambiguities.

Here are several examples of multiple inheritance declarations.

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.