|  | La 
              herencia, entendida como una característica de la programación 
              orientada a objetos y más concretamente del C++, permite 
               definir una clase modificando una o más clases 
              ya existentes. Estas modificaciones consisten habitualmente en añadir 
              nuevos miembros (variables o funciones), a la clase que 
              se está definiendo, aunque también se puede redefinir 
              variables o funciones miembro ya existentes. La 
              clase de la que se parte en este proceso recibe el nombre de clase 
              base, y la nueva clase que se obtiene se denomina clase 
              derivada. Ésta a su vez puede ser clase base en un 
              nuevo proceso de derivación, iniciando de esta manera una 
               jerarquía de clases. De ordinario las clases 
              base suelen ser más generales que las 
               clases derivadas. Esto es así porque a las 
              clases derivadas se les suelen ir añadiendo características, 
              en definitiva variables y funciones que diferencian concretan y 
              particularizan. En 
              algunos casos una clase no tiene otra utilidad que la de ser clase 
              base para otras clases que se deriven de ella. A este tipo 
              de clases base, de las que no se declara ningún 
              objeto, se les denomina clases base abstractas (ABC, 
              Abstract Base Class) y su función es la de agrupar miembros 
              comunes de otras clases que se derivarán de ellas. Por ejemplo, 
              se puede definir la clase vehiculo para después 
              derivar de ella coche, bicicleta, patinete, etc., 
              pero todos los objetos que se declaren pertenecerán a alguna 
              de estas últimas clases; no habrá vehículos 
              que sean sólo vehículos. Las características 
              comunes de estas clases (como una variable que indique si está 
              parado o en marcha, otra que indique su velocidad, la función 
              de arrancar y la de frenar, etc.), pertenecerán a la clase 
              base y las que sean particulares de alguna de ellas pertenecerán 
              sólo a la clase derivada (por ejemplo el número 
              de platos y piñones, que sólo tiene sentido para una 
              bicicleta, o la función embragar que 
              sólo se aplicará a los vehículos de motor con 
              varias marchas). Este 
              mecanismo de herencia presenta múltiples ventajas 
              evidentes a primera vista, como la posibilidad de reutilizar 
              código sin tener que escribirlo de nuevo. Esto es 
              posible porque todas las clases derivadas pueden utilizar el código 
              de la clase base sin tener que volver a definirlo 
              en cada una de ellas. |  |