The term lifetime is treated here in the context of object-oriented programming languages, whereby the two terms lifetime and scope
must be explicitly distinguished from each other. The lifetime of an object
is a dynamic property, i.e., a property that depends on the program run, and refers to the period of time from the creation of an object until its termination. Inaddition to the creation, however, the handling of an object also includes the declaration of an identifier that is associated with the object; the object definition is thus composed of the declaration of an identifier, possibly with type information, and the creation of the object. Objects are identified in object-oriented programming languages, for example, by variables or formal parameters
that hold the generated object. In the validity area of their identifier, the object can be reached by this identifier. Block-structured object-oriented programming languages distinguish between different types of object definition, such as those of automatic objects and application-controlled objects, which affect the validity area and lifetime of the object.