[derivation] (original) (raw)
16 Library introduction [library]
16.5 Library-wide requirements [requirements]
16.5.5 Conforming implementations [conforming]
16.5.5.12 Derived classes [derivation]
An implementation may derive any class in the C++ standard library from a class with a name reserved to the implementation.
Certain classes defined in the C++ standard library are required to be derived from other classes in the C++ standard library.
An implementation may derive such a class directly from the required base or indirectly through a hierarchy of base classes with names reserved to the implementation.
In any case:
- Every base class described asvirtualshall be virtual;
- Every base class not specified asvirtual shall not be virtual;
- Unless explicitly stated otherwise, types with distinct names shall be distinct types.178
All types specified in the C++ standard library shall be non-final types unless otherwise specified.