Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Herencia simple y multiple en c++

Herencia simple y multiple en c++

Herencia simple y multiple en c++

Angel Herrera Sara

November 07, 2017
Tweet

More Decks by Angel Herrera Sara

Other Decks in Programming

Transcript

  1. Norma: • Por defecto la herencia es privada, si accidentalmente

    se olvida la palabra reservada public, los elementos public y protected de la clase base se heredan como privados.
  2. Herencia pública: • En general, herencia pública significa que una

    clase derivada tiene acceso a los elementos públicos y protegidos de su clase base. Los elementos públicos se heredan como elementos públicos; los elementos protegidos permanecen protegidos; lo elementos privados no se heredan.
  3. Herencia privada: • La herencia privada significa que un usuario

    de la clase derivada no tiene acceso a ninguno de sus elementos de la clase base.
  4. Herencia protegida: • Con herencia protegida, los miembros públicos y

    protegidos de la clase base se convierten en miembros protegidos de la clase derivada y los miembros privados de la clase base se vuelven inaccesibles.
  5. HERENCIA MÚLTIPLE: • Herencia multiple es un tipo de herencia

    en la que una clase hereda el estado (estructura) y el comportamiento de más de una clase base. Es decir, existen múltiples clases base (ascendientes o padres) para la clase derivada (descendiente o hija).
  6. Características de la herencia múltiple: Los problemas que se pueden

    presentar cuando se diseñan clases con herencia múltiple son: • colisiones de nombres de diferentes clases base (dos o más clases base tiene el mismo identificador para algún elemento de su interfaz. Se resuelve con el operador de ámbito ::). • herencia repetida de una misma clase base (una clase puede heredar indirectamente dos copias de una clase base. Se resuelve con el operador de resolución ámbito ::).
  7. CLASE ABSTRATAS: • Las clases abstractas no tienen instancias Directamente.

    Se utilizan para agrupar otras clases y capturar información que es común al grupo. Sin embargo, las subclases de clases abstractas se corresponden a objetos del mundo real y pueden tener instancias. Las superclases que se crean a partir de subclases con atributos y comportamientos comunes, y que sirven para derivar otras clases que comparten sus características, son clases abstractas.
  8. Las siguientes reglas se aplican a las clases abstractas: •

    Una clase abstracta debe tener al menos una función virtual pura. • Una clase abstracta no se puede utilizar como un tipo de argumento o como un tipo de retorno de una función aunque sí un puntero a ella. • No se puede declarar una instancia de una clase abstracta. • Se puede utilizar un puntero o referencia a una clase abstracta. • Una clase derivada que no proporcione una definición de una función virtual pura, también es una clase abstracta. • Cada clase (derivada de una clase abstracta) que proporciona una definición de todas sus funciones virtuales es una clase concreta. • Solo está permitido crear punteros a las clases abstracta y pasárselos a funciones.