You have a class Parent with a virtual method a and a class Child that implements a. You also have a several functions:
void f1(Parent p) { p.a(); }
void f2(Parent* p) { p->a(); }
void f3(Parent& p) { p.a(); }
When called with a Child instance, which method will be invoked for f1, f2 and f3?