“Conocimiento Redes>Redes virtuales

¿Qué es la herencia virtual?

2014/1/24
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 agregar una ruta segura con un acceso remoto VPN
¿Qué es la forma completa de vdu?
Cómo conectarse a una VPN de Microsoft
¿Qué es la memoria virtual?
¿Qué quieres decir con red privada virtual?
Problemas con Netgear FVS318 VPN Firewall Router
¿Qué es VPN Información Cuenta
¿Dónde puedo encontrar información sobre virtualización de la computación en la nube?
Conocimiento de la computadora © http://www.ordenador.online