Describes inheritance relationship between the descriptor classes and associated abstract base classes.
The following diagram shows the inheritance relationship between the concrete descriptor classes and their abstract base classes.
The diagram uses the 16-bit variant types:
but the relationship is exactly the same for the 8-bit variants. The class names can also be replaced by the build independent types and the relationships remains valid.
The TBufBase16
and TBufCBase16
classes
are an implementation convenience and are not part of the public API.
TDesC16
and TDes16
are abstract
classes and cannot be instantiated, However, these types can be passed as
arguments to functions.
Inheritance relationship between the concrete descriptor classes and their abstract base classes
Because descriptors are widely used (especially on the stack), the size of descriptor objects must be kept to a minimum. To help with this, no virtual functions are defined in order to avoid the overhead of a virtual function table pointer in each descriptor object.
As a consequence, the base classes have implicit knowledge of the classes derived from them.