Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //////////////////////////////////////////// Vektor.h ///////////////////////////////////////////////
- #ifndef VEKTOR_H
- #define VEKTOR_H
- #include <iostream>
- using namespace std;
- // -------------------------- Klassendeklaration (Vektor) --------------------------//
- class Vektor {
- public: // Schnittstelle
- Vektor(int = 0); // Konstruktor
- Vektor(Vektor& arg); // Kopierkonstruktor
- virtual ~Vektor(); // Destruktor (virtuell)
- // Gebe Größe zurück
- int size() const {return sz;}
- // Hole,Setze Werte aus Elemente
- int get(int n) {return elem[n];}
- int set(int n, int val) {elem[n] = val;}
- // Operatoren
- Vektor& operator=(Vektor& a); // Zuweisungsoperator
- private: // Implementierung
- int sz; // Größe des Vektor
- int* elem; // Zeiger auf Int Elemente
- void copy(const Vektor& arg); // Funktion zum Kopieren
- };
- #endif
- /////////////////////////////////////////////// Vektor.cpp /////////////////////////////////////////////
- #include "Vektor.h"
- //------------------- Memberfunktionen (Klasse Vektor) ---------------------//
- // ---------------- Konstruktoren --------------------//
- // Konstruktor (Standart & Überladen)
- Vektor::Vektor(int n)
- :sz(n), elem(new int[n])
- {
- }
- // Kopierkonstruktor
- Vektor::Vektor(Vektor& arg)
- : sz(arg.sz), elem(new int[arg.sz])
- {
- copy(arg);
- }
- // Destruktor
- Vektor::~Vektor()
- {
- if (sz > 0)
- delete[] elem;
- else
- delete elem;
- }
- // ------------------ Operatoren ---------------------//
- // Zuweisungsoperator
- Vektor& Vektor::operator=(Vektor& a)
- // macht diesen Vektor zu einer Kopie von a
- {
- // 1) erzeugt Kopie der Elemente aus Originalvektor
- int* p = new int[a.sz];
- for (int i = 0; i < a.sz; i++)
- p[i] = a.elem[i];
- // 2) Speicherfreigabe der alten Elemente des Zielvektors
- delete[] elem;
- // 3) elem -> p
- elem = p;
- sz = a.sz;
- // 4) Referenz auf sich selbst zurückliefern
- return *this;
- }
- // ------------------ spez. Funktion -----------//
- // copy
- void Vektor::copy(const Vektor& arg)
- {
- // kopiert die Elemente [0:arg.sz-1]
- for (int i = 0; i < arg.sz; i++)
- elem[i] = arg.elem[i];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement