Transcription: The function useClass is called with IDP as an argument. In the body of useClass, message is called using this argument. The definition of message in indirect1 is invoked even though the argument that is passed to useClass has a type of pointer to direct1. This demonstrates that the message function declared indirect1 is a virtual function.