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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.