Constructor en Herencia Múltiple en C++

Constructor es una función miembro de clase con el mismo nombre que la clase. El trabajo principal del constructor es asignar memoria para objetos de clase. El constructor se llama automáticamente cuando se crea el objeto. 

Herencia múltiple:

La herencia múltiple es una característica de C++ donde una clase puede derivar de varias (dos o más) clases base. Los constructores de clases heredadas se llaman en el mismo orden en que se heredan.

Modelo de herencia múltiple

Sintaxis de herencia múltiple:

Sintaxis de herencia múltiple:

clase S: ​​pública A1, virtual A2
{
….
};                                                                                            

Aquí,
A2(): constructor base virtual
A1(): constructor base
S(): constructor derivado

Ejemplo 1 : A continuación se muestra el programa C++ para mostrar el concepto de Constructor en Herencia Múltiple.

C++

// C++ program to implement
// constructor in multiple
// inheritance
#include<iostream>
using namespace std;
class A1
{
  public:
  A1()
  {
    cout << "Constructor of the base class A1 \n";
  }
 
};
 
class A2
{
  public:
  A2()
  {
    cout << "Constructor of the base class A2 \n";
  }
 
};
 
class S: public A1, virtual A2
{
  public:
  S(): A1(), A2()
  {
    cout << "Constructor of the derived class S \n";
  }
};
 
// Driver code
int main()
{
  S obj;
  return 0;
}
Producción

Constructor of the base class A2 
Constructor of the base class A1 
Constructor of the derived class S 

Complejidad temporal: O(1)
Espacio auxiliar: O(1)

Ejemplo 2 : A continuación se muestra el programa C++ para mostrar el concepto de Constructor en Herencia Múltiple.

C++

// C++ program to implement
// constructors in multiple
// inheritance
#include<iostream>
using namespace std;
class A1
{
    public:
        A1()
        {
            int a = 20, b = 35, c;
            c = a + b;
            cout << "Sum is:" <<
                     c << endl;
        }
};
 
class A2
{
    public:
        A2()
        {
            int x = 50, y = 42, z;
            z = x - y;
            cout << "Difference is:" <<
                     z << endl;
        }
};
 
class S: public A1,virtual A2
{
    public:
        S(): A1(), A2()
        {
            int r = 40, s = 8, t;
            t = r * s;
            cout << "Product is:" <<
                     t << endl;
        }
};
 
// Driver code
int main()
{
    S obj;
    return 0;
}
Producción

Difference is:8
Sum is:55
Product is:320

Complejidad temporal: O(1)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por akshaysobti15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *