Copy constructor, = Operator und Destructor

Diese drei Methoden sind essentielle Bestandteile jeder C++ Klasse. Sie werden von C++ automatisch erzeugt falls nicht explizit definiert.


Für bisherige Beispiele mit einfachen Member-Variablen automatische Erzeugung ausreichend:


Anders bei komplexeren Klassen:

Wenn Objekte "Ressourcen" anlegen, z.B. Dynamic Memory, File-Handles, Netzwerkverbindungen, ..., muss man unbedingt selbst geeignete Copy constructor, = Operator, Destructor Methoden definieren, die die entsprechenden Resourcen verwalten (neu anlegen, kopieren, löschen, etc).

Die von C++ automatisch erzeugten sind unzureichend!.

Beispiel Dynamic Memory: Konstruktor reserviert Speicher und weist ihn Member-Variablen zu:
int * number = new int[100];


Explizite Implementierung nötig:


GDuckeck 2019-08-01