next up previous contents index
Nächste Seite: 7.5.3 Eine einfache Bibliothek Aufwärts: 7.5 Deklarationen und Headerfiles, Vorherige Seite: 7.5.1 Beispiel: printvec   Inhalt   Index


7.5.2 Beispiel: student

Wir können auch selbstdefinierte Datenstrukturen, z.B. die Datenstrukturen Student, Student_Mult aus §5.2 und Student2 aus §6.4 und globale Konstanten in einem Headerfile student.hh speichern. (siehe student.hh)

//       student.hh
const int MAX_SKZ = 5;

struct Student
 { ... };
struct Student_Mult
 { ... };
struct Student2
 { ... };

void Copy_Student2(Student2& lhs, const Student2& rhs);

Die neue Funktion Copy_Student2 wird in student.cc (siehe student.cc) definiert, wobei der Funktionskörper aus Ex643-correct.cc kopiert wurde.

//       student.cc
#include <strings.h>
#include "student.hh"

void Copy_Student2(Student2& lhs, const Student2& rhs)
{
 lhs = rhs;
//               Allocate memory and copy data
 lhs.pname = new char[strlen(rhs.pname)+1];
 strcpy(lhs.pname,rhs.pname);
 lhs.pvorname = new char[strlen(rhs.pvorname)+1];
 strcpy(lhs.pvorname,rhs.pvorname);

 return;
}

Da die Struktur Student2 verwendet wird, muß auch das Headerfile student.hh in student.cc eingebunden werden. Die neue Funktion Copy_Student2 kann nunmehr im Hauptprogramm Ex752.cc (siehe Ex752.cc) zum Kopieren einer Struktur benutzt werden. Das Hauptprogramm benötigt dafür natürlich wieder das Headerfile student.hh.

Das Kommando
LINUX> g++ Ex752.cc student.cc
erzeugt schlußendlich das Programm a.out.


Gundolf Haase 2004-01-15