Example of overriding
Dog * d = new Dog(); Mammal * m = d; d->bark(); // wouf m->bark(); // can't bark
d->speak(); // wouf m->speak(); // also wouf Animal * a = d; a->speak(); // and more wouf
d->bark(); // wouf a->bark(); // compile error, not allowed
Mammal mm; mm = *d; mm.speak(); // can't speak d->speak(); // although dog will wouf