“Conocimiento Redes>Redes virtuales

¿Qué es la herencia virtual?

2012/12/10
Herencia virtual es un mecanismo de C++ para crear una clase base que se puede heredar de forma segura varias veces, sin causar problemas con la división de objetos o errores de tiempo de ejecución.

Considere el siguiente ejemplo:

```c++

// clase base

clase Animal {

público:

nombre de cadena;

};

// Clase derivada 1

clase Perro:animal público {

público:

raza de cuerdas;

};

// Clase derivada 2

clase Gato:animal público {

público:

color de cuerda;

};

// Clase derivada 3 (hereda tanto de Perro como de Gato)

clase Mascota:público Perro, público Gato {

público:

//...

};

```

Sin herencia virtual, la clase `Pet` heredaría dos copias de la clase base `Animal`, lo que podría provocar errores de tiempo de ejecución o división de objetos (donde solo se construye una parte del objeto `Pet`). Para evitar esto, podemos usar la herencia virtual especificando la palabra clave "virtual" en la declaración de la clase base:

```c++

// Clase base con herencia virtual

clase animal {

público:

nombre de cadena;

};

```

Al utilizar la herencia virtual, la clase `Pet` solo heredará una copia de la clase base `Animal`, lo que garantiza un comportamiento correcto y evita errores de tiempo de ejecución.

Beneficios:

1. Resolver ambigüedades: Ayuda a resolver la ambigüedad cuando varias clases base tienen la misma función miembro o miembro de datos.

2. Reducción de la sobrecarga de memoria: Evita el corte de objetos, lo que reduce la sobrecarga de memoria y mejora el rendimiento.

3. Flexibilidad: Permite jerarquías de herencia complejas donde las clases derivadas pueden heredar de múltiples clases base.

Cuándo utilizar la herencia virtual:

- Cuando tienes herencia múltiple y quieres evitar miembros base ambiguos o segmentación de objetos.

- Cuando desee compartir una funcionalidad común entre varias clases derivadas sin duplicar el código.

Redes virtuales
Cómo dar vuelta a un hogar de escritorio en un servidor VPN
¿Cómo se configura VLSM?
¿Qué permite que VLSM haga un administrador de red?
¿La virtualización utiliza discos duros virtuales para almacenar el sistema operativo de máquinas?
¿Dónde reside la memoria virtual en un sistema de PC?
Cómo permitir un túnel VPN a través de un servidor de seguridad Cisco
¿Qué es el modelo de red en DBMS?
¿Cuál es la diferencia al tratar con sus máquinas virtuales sobre el modelo OSI?
Conocimiento de la computadora © http://www.ordenador.online