- Constructor también es una especie de función miembro
- Nombre igual que el nombre de la clase, sin valor de retorno, parámetros opcionales
- El constructor se llama automáticamente cuando se genera el objeto. Una vez generado el objeto, el constructor no es válido (se llama al constructor antes de que exista el objeto)
- Varios constructores
- por qué necesita?
- No es necesario escribir funciones de inicialización y no se preocupará por olvidarse de llamar a la función de inicialización.
- Algunos objetos se utilizan antes de inicializarlos para evitar cometer errores.
- utilizar
- Debe haber un constructor predeterminado. Si escribe un constructor usted mismo, debe escribir un constructor predeterminado (con los parámetros predeterminados completos o sin parámetros)
- Se puede inicializar mediante la lista de inicialización
- Polimorfismo constructor
El uso del constructor en la matriz:
#include<iostream>
using namespace std;
class Test{
private:
int x;
public:
Test():x(0){
cout<<"Constructor 1 called\n";}
Test(int n):x(n){
cout<<"Constructor 2 called\n"; }
};
int main()
{
Test a[2];
Test b[2]{
3,4};
Test c[2]{
3};
Test* d = new Test[2];
delete [] d;
return 0;
}
Resultado:
(complemento :, Test* e[3]={new Test(3),new Test};
esto llamará al constructor dos veces, porque e es una matriz de punteros, y el puntero no llamará automáticamente al constructor)