This example shows how a base class passes properties to derived classes through inheritance, and how polymorphism lets a base pointer call overridden methods at runtime.
virtual to enable runtime method overriding. Otherwise, base class methods get called no matter the object type.
class Dog : public Animal — Inherits publicly from Animalvirtual void speak(); — Declares method for polymorphismvoid speak() override; — Derived class overrides the methodAnimal* ptr = &derivedObject; — Base pointer to derived objectptr->method(); — Calls overridden method at runtime