Il existe une telle fonction spéciale en C++. C'est une fonction qui porte le même nom que le nom de la classe et n'a pas de valeur de retour. Tant que nous définissons un objet de la classe, le système l'appellera automatiquement pour une initialisation spéciale. de l'objet. Dans la plupart des cas, parce que nous ne définissons pas de constructeur , le système générera par défaut un formulaire et un constructeur caché. Le corps de la fonction de ce constructeur est vide et n'a donc aucune fonction.
Ensuite, nous vous apprendrons comment définir votre propre constructeur. L'utilisateur doit définir lui-même au moins un constructeur. Le système ne le générera plus automatiquement, mais sélectionnera celui qui correspond le plus à appeler en fonction du constructeur défini par l'utilisateur. .
Par exemple, toujours en utilisant la classe Student, nous ajoutons un constructeur avec des paramètres par défaut. Le code est le suivant :
#include<iostream>#include<Cstring>usingnamespacestd;classStudent{private:intnum;//numéro d'étudiant 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<<Constructor<< 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;}
C'est-à-dire que le constructeur peut être appelé en même temps qu'il est défini pour réaliser la fonction d'initialisation. Le fonctionnement est le suivant :
Il convient de noter que puisque nous avons défini un constructeur avec des paramètres par défaut dans la classe, le système ne le générera pas automatiquement pour le moment, nous devons également transmettre trois valeurs initiales par défaut lors de la définition de l'objet, car le constructeur. En cas de surcharge, le système trouvera la fonction la plus adaptée, mais si elle n'est pas définie comme constructeur avec des paramètres par défaut, une erreur sera signalée. Veuillez expérimenter par vous-même !