int main() { Base b; Cat c; Dog d; b.iam(); // "Base" c.iam(); // "Cat" d.iam(); // "Dog" Base *p = &c; p->iam(); // "Cat" p = &d; p->iam(); // "Dog" }