|
What's an object?
Now that you’ve seen an initial
example, it’s time to step back and take a look at some terminology. The
act of bringing functions inside structures is the root of what C++ adds to C,
and it introduces a new way of thinking about structures: as concepts. In C, a
struct is an agglomeration of data, a way to
package data so you can treat it in a clump. But it’s hard to think about
it as anything but a programming convenience. The functions that operate on
those structures are elsewhere. However, with functions in the package, the
structure becomes a new creature, capable of describing both characteristics
(like a C struct does) and behaviors. The concept of an object, a
free-standing, bounded entity that can remember and act, suggests
itself.
In C++, an object is just a variable, and
the purest definition is “a region of storage” (this is a more
specific way of saying, “an object must have a unique
identifier,” which in the case of C++ is a unique
memory address). It’s a place where you can store data, and it’s
implied that there are also operations that can be performed on this
data.
Unfortunately, there’s not complete
consistency across languages when it comes to these terms, although they are
fairly well-accepted. You will also sometimes encounter disagreement about what
an object-oriented language is, although that seems to be reasonably well sorted
out by now. There are languages that are
object-based, which means that they have objects
like the C++ structures-with-functions that you’ve seen so far. This,
however, is only part of the picture when it comes to an object-oriented
language, and languages that stop at packaging functions inside data structures
are object-based, not
object-oriented.
|
|