// 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);