Der Kopierkonstruktor

Mit den nun erworbenen Kenntnissen können wir jetzt den letzten speziellen Typ von Konstruktoren implementieren, der zwar im vorherigen Kapitel erwähnt wurde, aber noch nicht komplett vorgestellt wurde, weil er ein Objekt als Referenz übergeben bekommt. Er hat für die Beispielklasse aus dem vorherigen Kapitel die Form:

  gast(gast &g);

oder, falls das mitübergebene Objekt nicht verändert werden soll (was i.d.R. auch nicht sein sollte):

  gast(const gast &g);

In diesem Konstruktor müßten dann alle Elemente des übergebenen Objektes in das zu instanzierende kopiert werden. Des weiteren können zusätzliche Funktionen ausgeübt werden, wie hier das mitzählen des neuen (geklonten) Gastes:

  gast::gast(const gast &g) { 
    if (zaehler<100)
    { 
      cout<<"Hallo geklonter Gast"<<endl; 
      zaehler++; 
      // [Kopieren der anderen Elemente] 
    } 
    else
      cout<<"Zuviele Gäste!"<<endl; 
  } // gast(const gast &g) 

Warum die Übergabe per Referenz erfolgt wird im folgenden klar werden.