#include #include //HEAD template class PtrVector: public std::vector //= { public: //ITER class iterator { friend class PtrVector; typename std::vector::iterator d_begin; iterator(PtrVector &vector); public: Type &operator*(); }; //= iterator begin(); }; //ITERIMP template PtrVector::iterator::iterator(PtrVector &vector) : d_begin(vector.std::vector::begin()) {} template Type &PtrVector::iterator::operator*() { return **d_begin; } //= //BEGIN template typename PtrVector::iterator PtrVector::begin() { return iterator(*this); } //= using namespace std; //MAIN int main() { PtrVector vi; vi.push_back(new int(1234)); PtrVector::iterator begin = vi.begin(); std::cout << *begin << '\n'; } //=