// Standardkonstruktor
Studenten :: Studenten()
{
matrikel = skz = 0;
pname = pvorname = 0;
}
|
In der Konstruktion Studenten :: kennzeichnet der
Scope-operator ::
die Zugehörigkeit der Methode Studenten() zur
Klasse Studenten und ist Bestandteil der Signatur
dieser Methode (Funktion).
Der Standardkonstruktor wird im Hauptprogramm mit
Studenten robbi;
automatisch aufgerufen, sodaß alle Daten von robbi
mit 0 bzw. dem Nullpointer initialisiert werden.
// Parameterkonstruktor
Studenten :: Studenten
(const char vorname[], const char name[],
const long int mat_nr, const int skz_nr)
{
matrikel = mat_nr;
skz = skz_nr;
pname = new char[strlen(name)+1];
strcpy(pname,name);
pvorname = new char[strlen(vorname)+1];
strcpy(pvorname,vorname);
}
|
Mit dem Parameterkonstruktor kann eine Variable des
Typs Studenten
deklariert, definiert und gleichzeitig initialisiert werden.
Studenten arni("Arni","Schwarz",812,7981579);
Genauso wäre möglich:
char tmp1[20], tmp2[20];
long int tm;
int ts;
cin >> tmp1 >> tmp2 >> tm >> ts;
Studenten arni(tmp1,tmp2,tm,ts);
|
Parameterkonstruktoren können optionale Parameter enthalten, deren
Standardwerte bereits in der Deklaration
(Seite
) festgelegt werden.
Somit wäre auch eine Variablendefinition des
Typs Studenten über
Studenten arni("Arni","Schwarz");
gültig.
// Copykonstruktor
Studenten :: Studenten(const Studenten& orig)
{
matrikel = orig.matrikel;
skz = orig.skz;
if (orig.pname !=0 )
{
pname = new char[strlen(orig.pname)+1];
strcpy(pname,orig.pname);
}
else
{
pname = 0;
}
if (orig.pvorname != 0)
{
pvorname = new char[strlen(orig.pvorname)+1];
strcpy(pvorname,orig.pvorname);
}
else
{
pvorname = 0;
}
}
|
Der Copykonstruktor erlaubt eine Definition anhand einer
anderen Variablen derselben Klasse, wie in
Studenten mike(arni);