Intanto devi avere due dati: T* e una variabile per la dimensione (int, std::size_t; long long, fai tu).
Poi basta fare l'overload del costruttore.
Ad esempio (i tipi delle variabili le semplifico in int per comodità).
Però se devi usare la tua classe solo per memorizzare dati, stai reinventando la ruota.codice:// costruttori. Vector(T* p, int size) // costruttore che prende il puntatore al primo elemento e la dimensione. { _Ptr = new T[Size]; std::copy(p, p+size,_Ptr); } template <typename InpIter> Vector(InpIter first, InpIter last) // costruttore che un input iterator al primo e ultimo elemento. { _Ptr = new T[ std::distance(first,last) ]; std::copy(first, last,_Ptr); } T MyArray0[128]; // etc Vector vec0(MyArray,128); T MyArray1[128]; // etc Vector vec1(MyArray,MyArray+128); // oppure // Vector vec1(&MyArray[0],&MyArray[128]); std::vector std_vec; // etc Vector vec1( vec.begin(),vec.end() );
Se devi solo travasarli per poi fornire metodi di elaborazione è un altro paio di maniche.
Tra l'altro la domanda iniziale (sul puntatore a vector) è abbastanza strana. Non ti basta un'istanza al vector, senza per forza averne il puntatore?
codice:template <typename T> class Vector { public: // etc private: vector<T> _MyVec; };

Rispondi quotando