Existe una función tan especial en C++. Es una función con el mismo nombre que el nombre de la clase en una clase y no tiene valor de retorno. Siempre que definamos un objeto de la clase, el sistema lo llamará automáticamente para una inicialización especial. del objeto En la mayoría de los casos, debido a que no definimos un constructor , el sistema generará un formulario predeterminado y un constructor oculto de forma predeterminada. El cuerpo de la función de este constructor está vacío y, por lo tanto, no tiene ninguna función.
A continuación, le enseñaremos cómo definir su propio constructor. El usuario debe definir al menos un constructor por sí mismo. El sistema ya no lo generará automáticamente, sino que seleccionará el que más coincida para llamar en función del constructor definido por el usuario. .
Por ejemplo, todavía usando la clase Student, agregamos un constructor con parámetros predeterminados. El código es el siguiente:
#include<iostream>#include<Cstring>usingnamespacestd;classStudent{private:intnum;//número de estudiante charname[100];//nombre intscore;//score public:Student(intn,char*str,ints);intprint( );intSet(intn,char*str,ints);};Estudiante::Estudiante(intn,char*str,ints){num=n;strcpy(nombre,str);score=s;cout<<Constructor<< endl;}intStudent::print(){cout<<num<<<<nombre<<<<puntuación;return0;}intStudent::Set(intn,char*str,ints){num=n;strcpy(nombre, str);score=s;}intmain(){EstudianteA(100,dotcpp,11);A.print();return0;}
Es decir, se puede llamar al constructor al mismo tiempo que se define para realizar la función de inicialización. La operación es la siguiente:
Cabe señalar que dado que hemos definido un constructor con parámetros predeterminados en la clase, el sistema no lo generará automáticamente. En este momento, también debemos pasar tres valores iniciales predeterminados al definir el objeto, porque el constructor. Al sobrecargar, el sistema encontrará la función más coincidente, pero si no está definida como un constructor con parámetros predeterminados, se informará un error. ¡Experimente usted mismo!