Herencia C ++

Herencia C ++
La herencia es una característica muy importante de la programación orientada a objetos. Permite al programador derivar una clase de una clase existente. Esto es muy útil, especialmente en un gran proyecto complejo porque permite al programador reutilizar el código.

En este artículo, vamos a discutir el concepto de herencia en la programación de C ++. Explicaremos el concepto de la función de amigo en C ++ con ejemplos de trabajo.

Por qué herencia?

La herencia permite crear una nueva clase o clase derivada de otra clase o clase base. La clase derivada o la clase infantil tendrán todas las características de la clase principal o la clase base. Podemos reutilizar el código con la ayuda de la herencia.

Tipo de herencia

Hay diferentes tipos de herencia:

  1. Herencia simple/única
  2. Herencia jerárquica
  3. Herencia multinivel
  4. Herencia múltiple

En este artículo, vamos a considerar solo una herencia simple/única.

Ejemplo 1:

Ahora, veamos un programa de ejemplo para comprender el concepto de herencia en C++. Hemos definido una clase base y luego obtuvimos otra clase de ella. Por lo tanto, la clase derivada tendrá las características (miembros y funciones) de la clase base.

#incluir
usando el espacio de nombres STD;
clase base_class

público:
int i;
pantalla vacía ()

cout << "Display of Base Class " << i << endl;

;
Clase Derived_class: public base_class

público:
show void ()

cout << "Show of Derived Class" << endl;

;
int main ()

Derivado_class dc;
corriente continua.i = 100;
corriente continua.mostrar();
corriente continua.espectáculo();
regresar 0;

Ejemplo 2:

Este es otro ejemplo de herencia en C++. En este ejemplo, veremos cómo se llaman los constructores cuando se crea un objeto de clase derivado.

Como puede ver a continuación, hemos definido dos constructores de clase base y tres constructores de clase derivados. Puede notar claramente de la siguiente salida que el constructor de la clase base se llama primero antes de que se llame al constructor de clase derivado.

#incluir
usando el espacio de nombres STD;
clase base_class

público:
Base_class ()

cout << "Base_Class - No Parameters" << endl;

Base_class (int x)

cout << "Base_Class - Parameters : " << x << endl;

;
Clase Derived_class: public base_class

público:
Clase derivada()

cout << "Derived_Class - No Parameters" << endl;

Derivado_class (int y)

cout << "Derived_Class - Parameters : " << y << endl;

Derivado_class (int x, int y): base_class (x)

cout << "Param of Derived_Class : " << y << endl;

;
int main ()

Derivado_class d (7,19);

Ejemplo 3:

En este ejemplo, veremos cómo se pueden usar objetos de clase derivados.

Como puede ver, hay dos clases definidas: rectangle_class y cube_class. El rectangle_class es la clase base de la que la clase derivada, yo.mi., Cube_class se deriva. Por lo tanto, estamos heredando las características del rectangle_class a cube_class.

Además, puede notar que estamos heredando el Cube_Class con el control de acceso público. Esto significa que la clase derivada puede acceder a todos los miembros no privados de la clase base.

Hemos declarado un objeto de la clase derivada y luego llamamos a los métodos de la clase base, yo.mi., setLength () y setbreadth ().

#incluir
usando el espacio de nombres STD;
clase rectangle_class

privado:
int longitud;
int
público:
Rectangle_class ();
Rectangle_class (int l, int b);
Rectangle_class (rectangle_class & r);
int getLength ()

longitud de retorno;

int getbreadth ()

Volver a la amplitud;

void setLength (int l);
void setbreadth (int b);
área int ();
;
Clase CUBE_CLASS: public rectangle_class

privado:
int altura;
público:
Cube_class (int h)

altura = h;

int getheight ()

altura de retorno;

Vacío Setheight (int h)

altura = h;

int volumen ()

return getLength ()*getbreadth ()*altura;

;
Rectangle_class :: rectangle_class ()

longitud = 1;
amplitud = 1;

Rectangle_class :: rectangle_class (int l, int b)

longitud = l;
amplitud = b;

Rectangle_class :: rectangle_class (rectangle_class & r)

Longitud = R.longitud;
amplitud = r.amplitud;

void rectangle_class :: setLength (int l)

longitud = l;

void rectangle_class :: setbreadth (int b)

amplitud = b;

int rectangle_class :: área ()

Longitud de retorno*amplitud;

int main ()

CUBE_CLASS C (8);
C.setLength (12);
C.setbreadth (9);
cout<<"Volume is "<

Conclusión:

En este artículo, he explicado el concepto de herencia en C++. El C ++ admite diferentes tipos de herencia, incluida la "herencia múltiple" (i.mi., Heredar características de múltiples clase base o clase principal). Sin embargo, para hacerlo más simple, solo he considerado una herencia única aquí. He mostrado tres ejemplos de trabajo para explicar cómo podemos usar la herencia en la programación de C ++ y reutilizar el código. Además, esta es una característica muy útil de C++.