Ciao a tutti.
Sto tentando di creare una classe Vector per rappresentare dei vettori euclidei. Per creare dei vettori a qualsiasi dimensione e di qualsiasi tipo ho deciso di utilizzare dei template e utilizzare un puntatore per tenere traccia degli array o dei vector che contengono le coodrinate (così l'utente ha piena libertà sulla dimensione dei vettori).
Ora, mentre con gli array non vedo problemi perché sono strutture statiche, mi chiedo se ha senso utilizzate un puntatore a uno std::vector, che può essere riallocato se vengono aggiunti nuovi dati.
codice:
// Vector class
#ifndef VECTOR_H
#define VECTOR_H
#include <vector>
using std::vector;
template <typename T>
class Vector
{
public:
Vector();
Vector(const T [], int);
Vector(const vector<T>);
~Vector();
private:
T* vector_Ptr;
int vector_size;
};
#endif
codice:
template <typename T>
Vector<T>::Vector(const vector<T> array)
{
vector_Ptr = &vector<T>
vector_size = array.size();
}
Inoltre mi chiedevo se è possibile limitare l'istanza di una classe template a tipi fondamentali... Sto vaneggiando?!