BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR

Tema 18 Clases: Definiciones

Sugerencias de Portabilidad

Los clientes de una clase no necesitan ver el código fuente de la clase a fin de utilizarla. Los clientes deben, sin embargo, poder tener la capacidad de enlazarse con el código objeto de la clase.

Aquella información de importancia a la interfaz con una clase debería ser incluida en el archivo de cabecera. Aquella información que sólo ser  utilizada en forma interna en la clase y que no ser  necesaria para los clientes de la clase, debería ser incluida en el archivo fuente no publicado. Este es otra vez otro ejemplo del principio de mínimo privilegio.

C++ alienta a que los programas sean independientes de la puesta en práctica. Cuando se modifica la puesta en práctica de una clase utilizada mediante código independiente de la misma, dicho código no necesita ser cambiado, pero pudiera necesitar ser recompilado.

Conserve privados todos los miembros de datos de una clase. Proporcione funciones miembro públicas para definir los valores de los miembros de datos privados y para obtener los valores de los miembros de datos privados. Esta arquitectura ayuda a ocultar la puesta en práctica de una clase a la vista de sus clientes, lo que reduce errores y mejora la capacidad de modificación del programa.

Los diseñadores de clase utilizan miembros privados, protegidos y públicas para obligar a la idea de ocultamiento de información y al principio de mínimo privilegio.

Hacer privados los miembro de datos de una clase y públicas las funciones miembro de la clase, facilita la depuración, porque los problemas con las manipulaciones de datos se localizan ya sea en las funciones miembro de la clase o en los amigos de la clase.

Las funciones miembro tienen tendencia a agruparse en varias categorías diferentes: funciones que leen y regresan el valor de miembros de datos privados, funciones que definen el valor de miembros de datos privados, funciones que ponen en práctica las características de la clase, y funciones que ejecutan varias tareas mecánicas para la clase, como la inicialización de objetos de clase, la conversión entre clases y tipos incorporados o entre clases y otras clases, y el manejo de memoria para objetos de clase.