[C con Clase] Un fichero para cada clase
srd4121 en njit.edu
srd4121 en njit.edu
Jue Dic 11 20:53:59 CET 2008
Hola Anónimo,
Mensaje citado por: User <usuarioanonimomysql en gmail.com>:
> Hola de nuevo, las extensiones hpp y cpp son para C++ y las extensiones h y
> c son para C, ¿verdad?
Sí. Se suele usar estas extensiones, aunque en el caso de C++ también se
usa ".h".
> Las extensiones cpp y c son para el programa principal y las extensiones h y
> hpp son para las clases, ¿verdad?
No me atrevo a afirmar lo que dices, por los términos que usas. Expresaré lo
que has dicho de otra manera. Los ficheros de cabecera (".h", ".hpp")
contendrán las declaraciones de las clase y los ficheros fuentes
(".c", ".cpp") contendrán las implementaciones de las funciones miembro. Por
ejemplo,
// "miclase.h"
class miclase
{
private:
int nDato;
public:
miclase( int n=0 );
void dato( int n );
int &dato();
int dato() const;
};
// "miclase.cpp"
#include "miclase.h"
miclase::miclase( int n ) : nDato(n) {}
void miclase::dato( int n )
{
nDato = n;
}
int &miclase::dato()
{
return nDato;
}
int miclase::dato() const;
{
return nDato;
}
Ahora sólo tienes que incluir "miclase.h" en otros ficheros fuentes que
necesiten de tal clase. Eso sí, para el proyecto, todos los ficheros fuentes
deben ser compilados y enlazados.
Sin embargo, si estás definiendo plantillas de clases, entonces no podrás
separar las declaraciones de las implementaciones. Es una restricción de las
plantillas.
Espero haber aclarado las dudas.
Steven
Más información sobre la lista de distribución Cconclase