1 // Optimierung für Zeile
  2 // Datei: zeileop1.cpp
  3 #include <string.h>
  4 #include "zeileop1.hpp"
  6 Zeile::Zeile (char * op)
  7 { cout << "\nTextkonstruktor.";
  8 Laenge = strlen (op) + 1;
  9 Inhalt = new char [Laenge];
 10 strcpy (Inhalt,op);
 11 }
 12 Zeile::Zeile (Zeile & Z)
 13 { cout << "\nKopierkonstruktor.";
 14 Laenge = Z.Laenge;
 15 Inhalt = new char [Laenge];
 16 strcpy (Inhalt, Z.Inhalt);
 17 }
 18 Zeile & Zeile::operator= (Zeile & op)
 19 { cout << "\nZuweisung.";
 20 delete Inhalt;  // alten dyn. Speicher entf.
 21 Laenge = op.Laenge;
 22 Inhalt = new char[Laenge];
 23 strcpy (Inhalt, op.Inhalt);
 24 return (*this);
 25 }
 26 Zeile Zeile::operator+ (Zeile & op)
 27 {
 28 Zeile zwi ("");
 29 zwi.Laenge = Laenge + op.Laenge -1;
 30 delete zwi.Inhalt;
 31 zwi.Inhalt = new char [zwi.Laenge];
 32 strcpy (zwi.Inhalt, Inhalt);
 33 strcat (zwi.Inhalt, op.Inhalt);
 34 return zwi;
 35 }

Bild 10-8: Implementierung der "Zeile" mit Referenzen