Proceso de creación de objetos C ++

La creación de objetos se divide aproximadamente en tres etapas

  1. Ejecuta el constructor de la clase base.
  2. Ejecuta el constructor del miembro de tipo de clase.
  3. Ejecuta el constructor de tu propia clase.

  1. Ejecute el constructor de la clase base de la clase.
    • Todas las clases base ejecutarán su propio constructor, independientemente de si la clase base está en la lista de inicialización o no.
    • El constructor se puede especificar en la lista de voz inicial, si no se especifica. Simplemente llame al constructor predeterminado.
    • Orden de ejecución, presione, declare el orden de escritura de la clase base al heredar. No tiene nada que ver con el orden en la lista de inicialización.
  1. Inicializar los miembros de tipo de clase de la clase
    • Todos los miembros de tipo de clase llamarán al constructor para que se inicialicen, independientemente de si el miembro está en la lista de inicialización.
    • El constructor se puede especificar en la lista de voz inicial, si no se especifica. Simplemente llame al constructor predeterminado.
    • Orden de ejecución, presione, el orden de escritura de los miembros al declarar la clase. No tiene nada que ver con el orden en la lista de inicialización.
  1. Ejecuta el propio constructor de la clase.

manifestación:


#include<bits/stdc++.h>
using namespace std;

class Parent2 {
    
    
public:
    Parent2() {
    
    
        cout << "Parent2 constructor is called\n";
    }
};

class Parent1 {
    
    
public:
    Parent1() {
    
    
        cout << "Parent1 constructor is called\n";
    }
};

class A {
    
    
public:
    A() {
    
     cout << "A constructor is called\n"; }
};

class B {
    
    
public:
    B() {
    
     cout << "B constructor is called\n"; }
};

class Son : Parent1 , Parent2
{
    
    
    A a;
    B b;
public:
    Son(): b(), Parent1()
    {
    
    
        cout << "Son constructor is callede\n";
    }
};

int main()
{
    
    

    Son s;
    return 0;
}

Resultados del:

Parent1 constructor is called
Parent2 constructor is called
A constructor is called
B constructor is called
Son constructor is callede

Supongo que te gusta

Origin blog.csdn.net/wx_assa/article/details/107842163
Recomendado
Clasificación