Objects can be of either implicit or explicit type:
Objects of implicit type are associated with their
own structure.
Objects of explicit type are defined in terms of
another object type and its structure.
In the following figure, A is an
object of implicit type, B is an object type, and C is
an object that is explicitly of type B.
Objects of implicit type
Objects of implicit type are simple objects that cannot
be reused for defining other objects. Implicit types facilitate instance‑based
modeling, which is different from pure object-oriented modeling. Object-oriented
modeling requires every structural entity to be an instance of an
existing type. This required structure is known as the type/instance
dichotomy in object-oriented systems.
Reuse and object types in C structures
Object types support reuse, multiple instantiation,
and dynamic instantiation. In essence, object types are abstract data
types (ADTs). They specify a template of an object that can be instantiated
in different contexts.
Objects of explicit type
Objects of explicit
type are instances of an object type.
Instances of object types obtain their structure and behavior from
the object type.