Estructuras uniones y la palabra reservada class
Los programadores en
C++ se concentran en crear sus propios tipos definidos por el
programador llamados clases. A las clases también se les
denomina tipos definidos por el programador. Cada clase contiene datos, así
como un conjunto de funciones que manipulan estos datos. A los datos que
componen una clase se les llama datos
miembro. A las funciones que componen una clase se les llama funciones
miembro o métodos. Así como una instancia de un tipo de dato
predefinido tal como int se le llama
variable, a una instancia de un tipo
de dato definido por el usuario (es decir a instancia de una clase) se le llama
objeto. El foco de atención en C++ se
centra en las clases, en lugar de las funciones. Las clases en C++ son la
evolución natural de la idea de C con
respecto a struct, recordando que
struct es una colección de variables (datos) relacionadas mientras que una
clase contiene tanto variables (datos miembro) como las funciones que manipulan
dichos daros (funciones miembro).
Las clases permiten al programador modelar objetos que
tienen atributos (representados como datos miembro) y compartimientos u
operaciones (representado como funciones miembro). En C++, los tipos que
contienen datos miembro y funciones miembro se definen mediante la palabra
reservada class.
Algunas veces, en otros lenguajes de programación orientada
a objetos, las funciones miembro se es denomina métodos y se invocan en respuesta a los mensajes que se envían al
objeto. Un mensaje corresponde a una llamada a una función miembro enviada de
un objeto a otro, o enviada desde una función hacia un objeto. Una vez que se
define un clase, el nombre de la clase se vuelve un nombre tipo , lo cual puede
utilizarse para declarar objetos de dicha clase. El cuerpo de la definición de
la clase está delimitado con las llaves izquierda y derecha { y }. La definición de la clase termina con
un punto y coma.
Las etiquetas public y
private se llaman especificadores de
acceso a miembros. Cualquier fato o función miembro declarada después del
especificados public (y antes del
siguiente especificador de acceso a miembro) es accesible desde cualquier parte
del programa en la que el objeto se encuentre al alcance. Cualquier dato o
función miembro que se declara después del especificador de acceso a miembros private (y hasta el siguiente
especificador de acceso a miembros ) sólo es accesible a funciones miembro de
la clase. Los especificadores de acceso a miembros terminan siempre con dos
puntos (:), y pueden aparecer varias veces y en cualquier orden dentro de la
definición de la clase.
A continuación se muestra una ejemplificación de lo ya
mencionado así como su explicación.
La definición de la clase contiene prototipo para las
siguientes cuatro funciones miembro después del especificador de acceso a
miembros public: Hora, estableceHora, imprimeMilitar e imprimeEstándar . Éstas son las
funciones miembro public de la clase
(también conocidas como servicios públicos, comportamientos públicos o interfaz
de la clase). Estas funciones serpan utilizadas por los clientes .Los datos
meimbro de la clase permite el envío de los servicios que la clase propociona a
sus clientes, a través de sus funciones miembro. Estos servicios permiten al
código cliente interactuar con un objeto de dicha clase.
La función miembro que tiene el mismo nombre que la clase se le denomina función
constructor de la clase. Un constructor es una función miembro especial que
inicializa los datos miembro de un objeto de la clas. A un constructor de la
clase se le invoca cuando el programa crea un objeto de dicha clase. Es común
tener varios contructores para un clase; esto se lleva a cabo a través de la
sobrecarga de funciones. Así mismo no es posible especificar ningún tipo de
retorno para el constructor.
Los tres miembros enteros aparecen después del especificador
de acceso a miembros private. Esto indica que los datso
miembro de la de la clase son accesibles sólo para las funciones miembro de la
clase. Por lo tanto, solamente se puede acceder a los datos miembro de la clase
Hora mediante las cuatro funciones,
cuyos prototipos aparecen en la definicipon de la clase,Por lo general, los
datos miembro se listan en la parte privada de la clase, y las funciones
miembro se listan en la poción publica. Es posible tener funciones miembro private y dato public.
Una vez que se deifne la clase, es posible utilizarla como
un tipo dentro delas declaraciones de objetos, arreglos y apuntadores, de la
siguiente manera:
Hora atardecer, //objeto de tipo Hora
arregloDeHoras [ 5 ] //arreglo de objetos de tipo Hora
*apuntadorAHora,
//apuntador a un objeto de tipo Hora
&hora
Cenar =atardecer //referencia a un
objeto de tipo Hora
El nombre de la clase se convierte en un especificador de tipo. Puede
haber tantos objetos de una clase, como variables de tipo int. El programador puede crear nuevos de clases, como sea necesario.
Ésta es una de las razones por las que C++ es un lenguaje extensible.
Por lo general, las funciones miembro son más pequeñas que las que se
encuentran en programas no orientados a objetos, debido a que los datos
almacenados en los datos miembro se validan por medio del constructor, o por
medio de las funciones miembro que almacenan los nuevos datos. Debido a que los
datos ya se encuentran en el objeto las llamadas las funciones miembro a menudo
se hacen sin argumentos, o al menos tienen menos argumentos que las típicas
llamadas a funciones en lenguaje
No hay comentarios:
Publicar un comentario