[
Note 3:
For example,
class A * A;
first specifies
A to be the name of a class and then redefines
it as the name of a pointer to an object of that class
. This means that
the elaborated form
class A must be used to refer to the
class
. Such artistry with names can be confusing and is best avoided
. —
end note]