刚学到一个东西,用template和typeid可以得到传入参数的类型名字。 // CPlusPlusTutorial.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> using namespace std; template <class T> void printtype(T a) { cout << typeid(a).name() << endl; } class Base { public: int a; protected: private: }; int _tmain(int argc, _TCHAR* argv[]) { int a=0; printtype(a); void *p; p=0; printtype(p); Base b; b.a = 0; printtype(b); Base *pb = new Base; printtype(pb); string str; printtype(str); return 0; } 有意思。