template<class T1, int Size> class Queue // 类模板,其中T1为类型参数,Size为非类型参数 { public: explicit Queue():size_(Size){}; // 显式构造,避免隐式转换 …… template<class T2> void assign(T2 first,T2 last); // 内嵌函数模板 private: T* temp_; int size_; } // 类模板中内嵌函数模板Compare的外围实现(如在Queue类外实现) template<class T1,int Size> template<class T2> void Queue<T1,Size>::assign (T2 first,T2 last) {}; // 模板的使用方法 int ia[4] = {0,1,2,3}; Queue<int, sizeof(ia)/sizeof(int)> qi; qi.assign(ai,ai+4); |