#include using namespace std; template class Vektor { private: T *data; unsigned int groesse; public: Vektor(unsigned int Groesse); Vektor(Vektor const& v); Vektor(){}; void print(); friend ostream& operator<<(ostream& o, const Vektor& other); Vektor operator=(Vektor const& v); Vektor operator+(Vektor const& v) const ; Vektor(unsigned int groesse, T* daten); T const& operator[](unsigned int const index) const ; T & operator[](unsigned int const index) ; unsigned int Groesse() const { return groesse; }; }; template ostream& operator<<(ostream& o, const Vektor& other) { for(int i=0; i Vektor :: Vektor(Vektor const& v) { data = v.data; groesse = v.groesse; } template void Vektor :: print() { for(int i=0; i Vektor :: Vektor(unsigned int Groesse, T* daten) { data = new T[Groesse]; groesse = Groesse; for(unsigned int i = 0; i < groesse; i++) data[i]=daten[i]; } template Vektor::Vektor(unsigned int Groesse) { groesse = Groesse; data = new T[Groesse]; } template Vektor Vektor::operator+(Vektor const& v) const { if (groesse!=v.groesse) throw "falsche Laenge"; Vektor Ergebnis(groesse); for (unsigned int position=0;position Vektor Vektor::operator=(Vektor const& v) { if (groesse!=v.groesse) throw "falsche Laenge"; this->data=v.data; this->groesse = v.groesse; return *this; } template T const& Vektor::operator[](unsigned int const index) const { return data[index]; } template T & Vektor::operator[](unsigned int const index) { return data[index]; }