The constructs in a C++ program create, destroy, refer to, access, and
manipulate objects
. [
Note 1:
A function is not an object, regardless of whether or not it
occupies storage in the way that objects do
. —
end note]
The properties of an
object are determined when the object is created
. Some objects are
polymorphic (
[class.virtual]); the implementation
generates information associated with each such object that makes it
possible to determine that object's type during program execution
. For
other objects, the interpretation of the values found therein is
determined by the type of the
expressions (
[expr.compound])
used to access them
.