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