A pointer can point to an object by holding the object's address value. This is known as a "this pointer". A derived class inherits properties from its base class. A pointer to the base class can point to a derived class object, allowing access to both base and derived class members. Virtual functions ensure the correct overridden function is called at runtime based on the actual object type, rather than the pointer type. They are declared with the virtual keyword in the base class.