#include //supplies ostream_iterator #include //supplies copy #include //supplies cout using namespace std; template //class template prefix class Array { public: template //member template prefix Array(Iterator Begin, Iterator End) { aPtr = new Elem[End-Begin]; copy(Begin,End,aPtr); } ~Array() { delete[] aPtr; } void Print(unsigned int num){ copy(aPtr,aPtr+num,ostream_iterator(cout," ")); } //.. a realistic implementation would include overloaded operators, exception handling etc. private: Elem* aPtr; };