template class Info { public: void p(T *x); }; template void Info::p(T *x) { x->print(); } class PP { public: void print(); }; class QQ { public: void print(); };