类模版 内嵌类
template <typename T>class ObjectContainer{public: ObjectContainer():num(0){} int push(const T& obj) { objectType<T> p(num++,obj); objList.push_back(p); return num; } T get(int i) { objectType<T> t(objList[i]); return t.obj; }private: template<typename T> struct objectType { objectType(int i,T o):objectID(i),obj(o){} int objectID; T obj; }; int num; std::list<objectType<T> > objList;};