Una clase derivada contiene los atributos y el comportamiento de
su clase base. Una clse derivada también puede contener atributos
y comportamientos adicionales. Con la herencia, la clase base puede
ser compilada independiente de la clase derivada. Para tener la
capacidad de combinar estos atributos y comportamientos adicionales
con la clase base para formar la clase derivada basta compilar los
atributos y comportamientos incrementados de la clase derivada.
Las modificaciones a una clase base no requieren que sea modificada
la clase derivada, siempre y cuando la interfaz pública de
la clase base se mantenga sin modificación. Pudiera sin embargo,
ser necesario recompilar las clases derivadas.
Las modificaciones a una clase miembro no requieren que su clase
compuesta que la encierra sea modificada, siempre y cuando se mantenga
sin modificación la interfaz pública de la clase miembro.
Note que pudiera ser necesario recompilar la clase compuesta.
Declarar un objeto como const ayuda a que se cumpla el principio
del mínimo privilegio. Cualquier intento accidental de modificar
dicho objeto ser detectado en tiempo de compilación,
en vez de causar errores en tiempo de ejecución.
Una función miembro const puede ser homónima en una
versión no const. El compilador selecciona de forma automática
la función miembro homónima basándose en el
objeto que ha sido declarado const o no.
Tanto los objetos const como las "variables" const necesitan
ser inicializadas con sintaxis de inicializador miembro. Las asignaciones
no son permitidas.
Una forma de reutilización del software es la composición,
en la cual una clase tiene como miembros objetos de otras clases.
Los conceptos de acceso de miembros correspondientes a private,
protected y public no tienen relación con las declaraciones
de amistad por lo que las declaraciones de amistad pueden ser colocadas
en cualquier parte de la definición de clase.
Algunas personas en la comunidad OOP (Programción orientada
a objetos) sienten que la "amistad" corrompe el ocultamiento
de la información y debilita el valor del enfoque de diseño
orientado a objetos.
Los miembros de datos estáticos y las funciones miembro estáticas
existen y pueden ser utilizados, aun si no se han producido objetos
de dicha clase.
El programador puede crear nuevos tipos mediante el uso del mecanismo
de clases. Estos nuevos tipos pueden ser diseñados para ser
usados tan conveniente como los tipos incorporados. A pesar de que
mediante estos nuevos tipos el lenguaje es fácil de ampliar,
el lenguaje base mismo no es modificable.
Las clases plantilla fomentan la reutilización del software.
|