In C++ gibt es eine solche spezielle Funktion. Es handelt sich um eine Funktion mit demselben Namen wie der Klassenname in einer Klasse und ohne Rückgabewert. Solange wir ein Objekt der Klasse definieren, ruft das System es automatisch zur speziellen Initialisierung auf Da wir in den meisten Fällen keinen Konstruktor definieren, generiert das System standardmäßig ein Standardformular und einen versteckten Konstruktor. Der Funktionskörper dieses Konstruktors ist leer und hat daher keine Funktion.
Als Nächstes zeigen wir Ihnen, wie Sie Ihren eigenen Konstruktor definieren. Der Benutzer muss mindestens einen Konstruktor selbst definieren. Das System generiert ihn nicht mehr automatisch, sondern wählt basierend auf dem benutzerdefinierten Konstruktor den am besten passenden aus .
Wenn wir beispielsweise immer noch die Student-Klasse verwenden, fügen wir einen Konstruktor mit Standardparametern hinzu. Der Code lautet wie folgt:
#include<iostream>#include<Cstring>usingnamespacestd;classStudent{private:intnum;//student number charname[100];//name intscore;//score public:Student(intn,char*str,ints);intprint( );intSet(intn,char*str,ints);};Student::Student(intn,char*str,ints){num=n;strcpy(name,str);score=s;cout<<Konstruktor<< endl;}intStudent::print(){cout<<num<<<<name<<<<score;return0;}intStudent::Set(intn,char*str,ints){num=n;strcpy(name, str);score=s;}intmain(){StudentA(100,dotcpp,11);A.print();return0;}
Das heißt, der Konstruktor kann gleichzeitig mit der Definition aufgerufen werden , um die Initialisierungsfunktion zu realisieren. Die Operation ist wie folgt:
Es ist zu beachten, dass das System diesen nicht automatisch generiert, da wir in der Klasse einen Konstruktor mit Standardparametern definiert haben. Zu diesem Zeitpunkt müssen wir beim Definieren des Objekts auch drei Standardanfangswerte übergeben, da der Konstruktor Beim Überladen findet das System die am besten passende Funktion. Wenn sie jedoch nicht als Konstruktor mit Standardparametern definiert ist, wird ein Fehler gemeldet. Bitte experimentieren Sie selbst!