#include <iostream.h> #include <typeinfo.h> class A { public: A(){}; ~A(){}; }; class B { public: B(){}; ~B(){}; }; template <class T> void Gettype(T* x) { const type_info& pInfo = typeid(x); cout<<pInfo.name()<<endl; } int main() { A* pA = new A(); B* pB = new B(); A a; B b; Gettype(pA); //class A* Gettype(pB); //class B* Gettype(&a); //class A* Gettype(&b); //class B* return 0; }