Wednesday, December 07, 2005

Construccion de una clase en C++.

Tipos Abstractos.

En la terminología computacional, la combinación de datos y sus operaciones asociadas se define como un tipo de datos. Esto es, un tipo de datos que define los tipos de datos y los tipos de operaciones que se pueden efectuar sobre los datos.
Es decir:
Tipo de datos = datos permitidos + facilidades operacionales.
Tipo abstracto de datos es simplemenmte el determinado por el ususario que establece un tipo de datos y las operaciones que se pueden efectuar con ellos, y el cual es requerido cuando se desea crear objetos mas complejos que los numeros enteros y caracteres sencillos.
En C++ un tipo abstracto de datos se conoce como un clase. La construcción de un clase es inherentemente facil ya que se cuenta con todas las herramientas necesarias en variables y funciones. Lo que C++ proporciona es un mecanismo para empacar estos dos elementos en un unidad autosuficiente.
Clase
Una clase define los datos y las funciones. Esto se logra por lo general al contruir una clase en dos secciones las cuales consisten en un seccion declaratoria y una de implementacion.

//seccion declaratoria de clase
class nombre_clse
{
mienbros de datos
(instancias y variables)
funciones mienbros
(en linea o prototipos)
};
// seccion de implementación para la clase
Definiciones de funciones

Considere la siguiente clase llamada fecha como un ejemplo específico de una clase

//seccion para declarar clase
class fecha
{
Private:
int mes;
int dia;
int anho;
Public:
fecha(int = 7, int = 4, int = 2001);
void estfecha(int, int, int);
void mostrarfecha(void);
};
// seccion para implementar clase
Fecha::fecha(int mm, int dd, int aaaa)
{
mes = mm;
dia = dd;
anho = aaaa;
}

Void fecha::estfecha(int mm, int dd, int aaaa)
{
mes = mm; dia = dd; anho = aaaa;
return;
}
Void fecha::mostrarfecha(void)
{
cout<<“La fecha es ”; cout<<>

La seccion declaratoria de la clase se inicia con la palabra clave class seguida por un nombre de la clase. A este ultimo lo siguen las declaraciones de las variables de la clase y los prototipos de funcion, los cuales se hallan dentro de un par de llaves con un punto y coma al final.

Class nombre
{
private:
Una lista declaratoria de variables
Public:
Una lista de prototipos de funciones
};

Observe que este formato le sigue la clase fecha, la cual se muestra abajo sin comentarios internos, por conveniencia.

//seccion declaratoria de clase
Class fecha
{
Private:
int mes;
int dia;
int anho;
Public:
Fecha (int = 7, int = 4, int = 2001);
Void estfecha(int, int, int);
Void mostrarfecha(void)
}; //esta es una declaracion, asegurece de poner el punto y coma.

•El nombre de esta clase es fecha.
•*En este caso los miembros de datos son mes, dia, anho, se declaran como numeros enteros y tres funciones llamadas fecha(), estfecha(), mostrarfecha() y se declaran por medio de prototipos.
•*El prorposito de private es mantener la seguridad de datos al requirir que rtodo accseso a estos miembros sea a traves de la funciones miembro que se proporcionan.

La seccion de implementación de una clase es donde se escriben las funciones de los miembros citadas en la sección declaratoria.
Las funciones miembro definidas en la sección de implementacion tiene el mismo formato que todas las funciones en C++ escritas por un usuario con la inclusion del nombre de clase y el operador de alcance de resolucion, ::, que identifica la funcion como miembro de una clase en partricular.

Tipo-de-valo-devuelto nombre-de-clase::nombre-de-funcion
(lista de parametros)
{
cuerpo de la funcion
}
Terminologia.

Debido a que aveces existe confusion acerca de los termonos clases, objetos y otra terminología asociada con la programación orientada a objetos, debemos detenernos un momento para clasificar la terminologia.
Una clase es un tipo de datos definido por el programador con el cual se pueden crear objetos. Los objetos se crean a partir de las clases; tienen la misma relacion con las clases que las variables con los tipos de datos interconstruidos en C++.
Visto de esta manera, se puede pensar de un aclase como un borrador del cual a manera de copia, se pueden crear instancias particulares. Cada instancia de una clase tendra su propio conjunto de valores particulares por el conjunto de mienbros de datos especificados en la seccion declaratoria de cla clase.
Una clase tambien se define como el comportamiento; esto es las operaciones que se permite efectuar sobre los mienbros de datos de un objeto.

No comments: