sábado, 9 de enero de 2016

 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