- Write a clearly legible T to the left of each of the
following that is true, and a clearly legible F to the left
of each that is false.
- Programs written in an object-oriented style tend
to be organized significantly differently from programs written
in a functional or procedural style. T
- The class is an important concept of object-based programming.
F
- In most object-oriented languages, some type checking
must be done at run time.
T
- Is a private data field of an object accessible only
to that one object, or is it possible for other objects to
access it directly?
In object-based programming, a private data field (variable) is
accessible only to the object that contains it. In object-oriented
programming, it is accessible to that object and to all other
objects of the same class.
- In a single-inheritance language, is there a limit on
the number of base classes that a class can have?
Yes. In a single-inheritance language, each class can have at most
one base class.
- In object-oriented programming, you imagine that
objects carry functions with them. Yet, the functions are
not really stored with the objects. How does an object
locate its functions? How does it know which functions to select?
What is the name of the system support that is responsible
for locating functions?
An object carries a tag indicating its class. Functions are stored
according to their class in a dispatch table. The part of the run-time
support that locates functions in the dispatch table is called the
dispatcher.
- How does the mechanism for inheriting variables work in
single-inheritance object-oriented languages? Is there a separate
implementation of each selector for each class, or does one
implementation of each selector work for all classes? How do the
selector(s) work?
Variables are found by their position in the block of memory that
represents an object's state. They are found at the same position
regardless of the class of the object. So a single implementation works
for all classes.
- What is an abstract class?
An abstract class is a class with at least one virtual functions.
You are not allowed to create an instance of an abstract class unless
that instance is actually an instance of a subclass of the abstract class.
- What are the characteristics of a virtual functions? What makes
it virtual?
A virtual function logically belongs to a class that is higher in the
class hierarchy than the level at which function can be implemented.
It is declared to belong to the higher level, but implemented at the
lower levels.