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