P* p = new P; 
static and dynamic P*
C* c = new C;
static and dynamic C*
P* pc = new C;
static P*, dynamic C*
f(p);
f(P*)
f(c);
f(C*)
f(pc);
f(P*)
p->f();
P::f
c->f();
C::f
pc->f();
C::f