`Base * pba = new Derived; 
 Base * pbb = new Base;`

Even though both are pointers of type Base\*, pba actually points to an object of type Derived, while pbb points to an object of type Base. Therefore, when their respective type-casts are performed using dynamic\_cast, pba is pointing to a full object of class Derived, whereas pbb is pointing to an object of class Base, which is an incomplete object of class Derived.

What does an incomplete object of class Derived means?