BUSCAR
INICIO
MAPA
FAQs
UTILIDADES
GLOSARIO
REGISTRO
COLABORAR
QUIENES SOMOS

USUARIO

PASSWORD

FAQs
1.Cuestiones Generales

6.¿Por qué es tan importante descomponer un fichero en módulos?

La separación de la definición y la implementación es un paso importante hacia la ingeniería de software. El fichero que contiene la definición es todo lo que el usuario necesita para utilizar la clase en un programa. No necesita conocer la implementación real de las funciones.
 
A continuación te mostramos un ejemplo en el que se ha aplicado la descomposición de ficheros: Caja.h, que contiene la definición de la clase, Caja.cxx, que contiene la implementación de los métodos declarados en la clase Caja, y main.cxx, la función principal.


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 Caja.h hemos incluido sólo la definición de la clase. No se dan detalles sobre las diversas funciones, excepto para volumen. Es decir, tenemos la definición completa de cómo utilizar una clase sin detalles de implementación. Este fichero no puede ser compilado ni ejecutado.

Caja.cxx
# 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.cxx contiene la implementación de las funciones declaradas en la clase Caja.
Este fichero puede ser compilado, pero no ejecutado, porque no tiene función main. Cuando sea compilado, el código objeto será almacenado, y estará disponible para usarlo por otros programas.
 
main.cxx
#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';
}
.