gratiszona

descomposicion en modulos en el lenguaje C

Vamos a separar nuestro ejemplo en tres ficheros:
· Caja.h, que contiene la definicion de la clase
· Caja.cxx, que contiene la implementacion de los metodos declarados en la clase Caja
· main.cxx, la funcion principal.
Fichero Caja.h:
class Caja {
double longitud, anchura, altura;
public:
Caja (double dim1, double dim2, double dim3);
Caja (void);
void set (double nuevaLongitud, double nuevaAnchura, double nuevaAltura);
void print (void);
double getLongitud (void);
double volumen (void) {return longitud * anchura * altura};
~Caja (void);
};
EN EL LENGUAJE Caja.h hemos incluido solo la definicion de la clase. No se dan detalles sobre las diversas funciones. Es decir, tenemos la definicion completa de como utilizar una clase sin detalles de implementacion. Este fichero no puede ser compilado ni ejecutado.
Fichero Caja.cpp:
# include 'Caja.h'
Caja:: Caja (double dim1, double dim2, double dim3) {
longitud = dim1;
anchura = dim2;
altura = dim3;
};
Caja:: Caja (void) {
longitud = 8;
anchura = 8;
altura = 8;
};
void Caja:: set (double nuevaLongitud,nuevaLongitud, double nuevaAnchura, double nuevaAltura) {
longitud = nuevaLongitud;
anchura = nuevaAnchura;
altura = nuevaAltura;
}
void Caja:: print (void) {
cout << 'longitud = ' << longitud <<'\n';
cout << 'anchura = ' << anchura <<'\n';
cout << 'altura = ' << altura <<'\n';
};
double Caja:: getLongitud (void) {
return longitud;
};
Caja::~Caja (void) {
longitud = 0; anchura = 0; altura = 0;
}
Vemos que:
· Se incluye el fichero cabecera Caja.h, que contiene los prototipos de las funciones.
· Caja.cpp contiene la implementacion de las funciones declaradas en la clase Caja.
Este fichero puede ser compilado, pero no ejecutado, porque no tiene funcion main. Cuando sea compilado, el codigo objeto sera almacenado y estara disponible para usarlo por otros programas.
La separacion de la definicion y la implementacion es un paso importante hacia la ingenieria de software. El fichero que contiene la definicion es todo lo que el usuario necesita para utilizar la clase en un programa. No necesita conocer la implementacion real de las funciones.
Fichero main.cpp:
#include <iostream.h>
#include 'Caja.h'
main () {
Caja pequeña(5, 4, 10), mediana (10, 6, 20), grande(20, 10, 30);
cout << 'El volumen de la caja grande es ' << grande.volumen() << '\n';
}

Anterior: clases constructores y destructores
Siguiente: clases array de objetos

Tal vez te interese sobre lenguaje c: