C ++

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 proyecto grande y complejo porque permite al programador reutilizar el código.

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

Por qué la herencia?

La herencia permite crear una nueva clase o clase derivada de otra clase o clase base. La clase derivada o la clase secundaria tendrá 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

Existen 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 la herencia simple / única.

Ejemplo 1:

Ahora, echemos un vistazo a un programa de ejemplo para comprender el concepto de herencia en C++. Hemos definido una clase base y luego derivamos 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:
espectáculo vacío ()

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

;
int main ()

Derived_Class dc;
corriente continua.i = 100;
corriente continua.monitor();
corriente continua.show();
return 0;

Ejemplo 2:

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

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

#incluir
#incluir
usando el espacio de nombres std;
clase Base_Class

público:
Clase_base ()

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

Clase_base (int x)

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

;
clase Derived_Class: public Base_Class

público:
Clase derivada()

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

Derived_Class (int y)

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

Clase_derivada (int x, int y): Clase_base (x)

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

;
int main ()

Derived_Class d (7,19);

Ejemplo 3:

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

Como puede ver, hay dos clases definidas: Rectangle_Class y Cube_Class. Rectangle_Class es la clase base de la cual la clase derivada, i.mi., Cube_Class se deriva. Por lo tanto, heredamos las características de Rectangle_Class a Cube_Class.

Además, puede notar que estamos heredando 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, i.mi., setLength () y setBreadth ().

#incluir
usando el espacio de nombres std;
clase Rectangle_Class

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

longitud de retorno;

int getBreadth ()

amplitud de retorno;

void setLength (int l);
void setBreadth (int b);
int area ();
;
class Cube_Class: public Rectangle_Class

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

altura = h;

int getHeight ()

altura de retorno;

void setHeight (int h)

altura = h;

int volumen ()

return getLength () * getBreadth () * altura;

;
Rectangle_Class :: Rectangle_Class ()

longitud = 1;
ancho = 1;

Rectangle_Class :: Rectangle_Class (int l, int b)

longitud = l;
ancho = b;

Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)

longitud = r.largo;
ancho = r.amplitud;

vacío Rectangle_Class :: setLength (int l)

longitud = l;

vacío Rectangle_Class :: setBreadth (int b)

ancho = b;

int Rectangle_Class :: area ()

retorno largo * ancho;

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++. C ++ admite diferentes tipos de herencia, incluida la "herencia múltiple" (i.mi., heredando características de múltiples clases base o clase padre). Sin embargo, para hacerlo más simple, solo he considerado la herencia única aquí. He mostrado tres ejemplos de trabajo para explicar cómo podemos usar la herencia en la programación C ++ y reutilizar el código. Además, esta es una característica muy útil de C++.

Los mejores emuladores de consola de juegos para Linux
Este artículo enumerará el software de emulación de consola de juegos más popular disponible para Linux. La emulación es una capa de compatibilidad de...
Las mejores distribuciones de Linux para juegos en 2021
El sistema operativo Linux ha recorrido un largo camino desde su apariencia original, simple y basada en servidor. Este sistema operativo ha mejorado ...
Cómo capturar y transmitir su sesión de juego en Linux
En el pasado, los juegos solo se consideraban un pasatiempo, pero con el tiempo la industria del juego experimentó un gran crecimiento en términos de ...