11.3. Subtypes

Public inheritance makes derived types a subtype of their base. Standard conversions apply from derived objects to base objects with pointers and references (see Table 6.5, “Standard conversions,” on page 277). This means derived object references or pointers may appear in expressions whose types are base object references or pointers.

The compiler converts derived class pointers and references to base class pointers and references implicitly (without casts). These standard conversions occur with object initialization, assignment, and function argument resolution. Here are several examples.

 class Derived : public Base { . . . }; Base b; // Base object Derived d; // Derived publicly from Base Base *bp = &d; // legal, pointer standard ...

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.