[C con Clase] Duda fichero cabecera - Prog modular.

Programante programante en gmail.com
Mie Dic 22 00:02:05 CET 2010


El 20/12/10 17:42, Jorge Vega Sanchez escribió:
> Buenas
>
> Tengo una duda que me da en la nariz que es bastante estúpida. Paso a
> contarla.
> He creado unos métodos para escribir unos mensajes en ficheros de
> texto a modo de sistema de logs (muy simple).
>
> Tengo un fichero con varios metodos
>
> *_metodo.cpp_*
> -metodo 1
> -metodo 2
> -metodo 3
> ...
> -metodo principal(basicamente llama a metodo 1, metodo 2 y demás)
>
> en el fichero de cabecera ' _*metodo.h*_' solo he definido el metodo
> principal --> supongo que no hace falta definir ninguno que el
> programa principal solo necesito ver 'metodo principal'
>
> metodo principal es así *" void log(string cadena, int tipo) "*
>
>
> Problema al compilar( gcc metodo.h metodo.cpp -c) obtengo el siguiente
> error:
>
> gestor_logs.h:9: error: variable or field ‘log’ declared void
> gestor_logs.h:9: error: ‘string’ was not declared in this scope
> gestor_logs.h:9: error: expected primary-expression before ‘int’
>
> no entiendo el porque pareec que string no esté definido cuando la
> librería string está incluida en metodo.cpp.
>
> Un saludo.

Utiliza std::string en vez de string en la declaración. Supongo que
tendrás using namespace std; después de incluir el .h (que es lo
correcto), motivo por el cuál no sabe de qué string estás hablando.
También te aviso, log como nombre de función da problemas a veces por
entrar en conflicto con la función del logaritmo de la biblioteca
matemática. Si empiezas a ver errores extraños sobre tomar el parámetro
como float, es por ella.

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101222/65f11e66/attachment.html>


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