[C con Clase] Ficheros en C++

Paco Quintana FQUINTA en telefonica.net
Dom Nov 25 20:57:18 CET 2007


David Reza escribió:

> Los errores:
>
>     Datos.h:8: error: `ios' has not been declared
>     Datos.h:8: error: `in' undeclared (first use this function)
>     Datos.h:8: error: (Each undeclared identifier is reported only
>     once for each function it appears in.)
>     Datos.h:8: error: `ios' has not been declared
>     Datos.h:8: error: `out' undeclared (first use this function)
>     Datos.h:8: error: `ios' has not been declared
>     Datos.h:8: error: `binary' undeclared (first use this function)
>     Datos.h:9: error: `good' undeclared (first use this function)
>     Datos.h:10: error: `ios' has not been declared
>     Datos.h:10: error: `ios' has not been declared
>     Datos.h:10: error: `ios' has not been declared
>     Datos.h:10: error: `trunc' undeclared (first use this function)
>     Datos.h:10: error: `ios' has not been declared
>     Datos.h:10: error: `open' undeclared (first use this function)
>     Datos.h:11: error: `cout' undeclared (first use this function)
>     Datos.h:11: error: `endl' undeclared (first use this function)
>     Datos.h :12: error: `cin' undeclared (first use this function)
>     FicheroPrueba.cpp: In function `int main()':
>     FicheroPrueba.cpp:33: error: `cout' undeclared (first use this
>     function)
>     FicheroPrueba.cpp:47: error: `endl' undeclared (first use this
>     function)
>     FicheroPrueba.cpp:50: error: `cin' undeclared (first use this
>     function)
>     FicheroPrueba.cpp: In function `int Menu()':
>     FicheroPrueba.cpp:64: error: `cout' undeclared (first use this
>     function)
>     FicheroPrueba.cpp :64: error: `endl' undeclared (first use this
>     function)
>
>     FicheroPrueba.cpp:71: error: `cin' undeclared (first use this
>     function)
>
>
> Son por que estas utilizando funciones que están declaradas en sus 
> respectivas librerías, pero dichas librerías no las estas incluyendo 
> en tu programa. Por ejemplo la librería 'iostream' que hasta donde sé 
> contiene las declaraciones y definiciones para usar 'cout', 'cin', 
> 'endl'. Para 'ios' me parece que es 'stdio'. Para las demás tu 
> deberías de saber cuáles son si tu creaste el programa. Tal vez sólo 
> se te olvidó.
>
> Veo que sí las incluiste dentro del archivo alea.cpp, pero también las 
> utilizas en Datos.h donde no las incluiste. Por eso el error de que en 
> Datos.h, el error 11 es que 'cout' no está declarado:
>
>     Datos.h:11: error: `cout' undeclared (first use this function)
>
>
> También en FicheroFuente.cpp parece que sólo te falta 'iostream'
>
> A falta de tiempo no puedo checar de todo, pero checa bien tu archivo 
> de cabecera Datos.h
>
> In file included from FicheroPrueba.cpp:9:
> Datos.h:6: error: expected class-name before '{' token
>
> Datos.h: In constructor `Datos::Datos()':
> Datos.h:8: error: class `Datos' does not have any field named `fstream'
>
> Dice algo de que no estas declarando ningún campo fstream. Supongo que 
> lo que querías hacer era una lista de inicialización de miembros, pero 
> no está correcta, ya que en tu clase no tienes ningún miembro llamado 
> fstream.
>
> Aparte estás implementando el constructor Datos(); dentro del 
> encabezado, y aunque se puede hacer es contrario a lo que has estado 
> haciendo, es decir, declararla en un archivo de encabezado y definirla 
> en otro archivo fuente.
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Lista de correo Cconclase Cconclase en listas.conclase.net
>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
Efectivamente David, gracias por tu ayuda. los errores que me da es 
efectivamente porque las definiciones estan en los archivos de cabecera 
iostream , fstream etc pero como muy bien ves ya estan incluidos en el 
fichero que contiene al main es mas, ponga donde ponga el #include 
<fstream> siempre me dice que fstream no es un dato mienbro de datos y 
lo que intento es declara la clase datos como una clase derivada de fstream.
Si juntas todos los archivos en uno solo veras que es el ejemplo exacto 
de c con clase ficheros de acceso aleatorio y si lo compilas asi 
funciona perfectamente por lo que el problema esta en la distribucion 
del proyecto en archivos independientes. El espacio de nombres no sé 
exactamente donde puedo ponerlo para que no me de errores.

Alguna ayuda por ahi ?????
Gracias
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: ResultadosCompilacion.txt
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071125/c362febb/attachment.txt>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: Datos.cpp.txt
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071125/c362febb/attachment-0001.txt>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: Datos.h.txt
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071125/c362febb/attachment-0002.txt>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: FicheroPrueba.cpp.txt
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071125/c362febb/attachment-0003.txt>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: Registro.cpp.txt
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071125/c362febb/attachment-0004.txt>
------------ próxima parte ------------
An embedded and charset-unspecified text was scrubbed...
Name: Registro.h.txt
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071125/c362febb/attachment-0005.txt>


Más información sobre la lista de distribución Cconclase