Zurück Vor +Ebene Home Inhalt Index Hilfe

Konstruktoren

Wird x.Quotient() vor x.Setzen() aufgerufen, so haben die Variablen i und j keinen definierten Wert (eine zufällige Bitfolge im den Variablen i und j zugewiesenen Speicher). Der Quotient ist also undefiniert!
 
Konstruktor, Member-Funktion, die bei der Instanziierung einer Klasse aufgerufen wird und zur Definition der Member-Inhalte verwendet werden sollte.
 
Konstruktoren tragen immer den Namen der Klasse. Sie besitzen keinen Rückgabewert (auch nicht void ). Konstruktoren können überladen werden.
 

Member-Initialisierung, Definition von Member-Inhalten bei Aufruf von Konstruktoren. < Klasse>::< Klasse>(...) : Member1( Wert1), ... , MemberN( WertN)

 
Wert können dabei auch beliebige, bereits deklarierte, Funktionen oder komplexe Ausdrücke sein.
 
Beispiel::Beispiel() : i(0), j(1)

 
Die Member-Initialisierung ist die einzige Möglichkeit, konstante Member zu initialisieren!
 
Member-Inhalte können auch im Funktionskörper des Konstruktors zugewiesen werden. Im Gegensatz zur Member-Initialisierung ist eine Wertzuweisung für konstante Member hier nicht möglich.
 
Grundsätzlich sollten alle Member, soweit möglich, über Member-Initialisierung definiert werden.
 
schlechtes Beispiel:

 Beispiel::Beispiel(int a,int b)
 {
 i = 2*(a/2);
 j = 2*((b+1)/2)-1;
 }

 
Die Instantiierung der Klasse erfolgt nun in folgender Syntax:

Copy-Konstruktor , Konstruktor zur Erzeugung einer Kopie eines Objektes.
 
Der Copy-Konstruktor einer Klasse wird aufgerufen bei Definitionen ( Beispiel a = b ) oder ,,Call-by-Value``-Übergabe eines Objektes an eine Funktion.

   class Beispiel
   {
         .
         .   
      Beispiel(Beispiel&);
         .
         . 
   }
   Beispiel::Beispiel(Beispiel& a)
   {
      i = a.i;
      j = a.j;
   }
   main()
   {
      Beispiel a(1,2);
      Beispiel b = a;  /* a  wird kopiert und b} zugewiesen */
   }

 
Wird kein Copy-Konstruktor definiert, so werden standardmäßig die Inhalte aller Member kopiert. Dies kann Probleme bei dynamischer Speicherverwaltung aufwerfen!

Zurück Vor +Ebene Home Inhalt Index Hilfe

Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik