Oops, forgot: [1] This will be NULL if the Base class instance is not of the derived type, and the derived pointer type otherwise -- by CONVENTION (and due diligence!). The Base class doesn't actually KNOW anything about the methods that the other class supports (it doesn't even know, nor need to know, that the Derived class is derived from the Base class). A forward declaration that the class exists "somewhere" is sufficient to specify the pointer. --Eljay