Programación General > C/C++

 Error "Definición múltiple de función"

(1/1)

m0skit0:
Bueno ahora resulta que si no añado ningún .cpp (excepto ccoordenada.cpp) al proyecto y comento main() para que no contenga nada, compila:

[attachment=1:2tbpigas]compiled.jpg[/attachment:2tbpigas]

Pero si añado otro .cpp entonces:

[attachment=0:2tbpigas]no_compiled.jpg[/attachment:2tbpigas]

 :ph34r:  :ph34r:  :brickwall:

punteroNULO:
Sin más información se me ocurre que podría deberse a que se incluye un archivo de cabecera en dos módulos distintos y al enlazarlos se definen las mismas funciones dos veces.

Se puede evitar esto simplemente con una definición y una condición. Por ejemplo (archivo clases.h, por poner uno)

--- Código: C++ --- #ifndef clases_H#define clases_H // contenido de la cabecera #endif  
La primera vez que se incluye el archivo no está definido clases_H, se cumple la condicion "#ifndef clases_H" define clases_H y el resto del contenido. Pero la segunda vez que se incluya ya estará defindo y por tanto se salta ese código y no se vuelven a redefinir las funciones.

Bueno, espero que se entienda más o menos.

m0skit0:
Hm, claro, no había pensado en ello :good: Es lo que tiene el obfuscarse en una casilla y no ver más allá. Ya te cuento qué tal y muchas gracias.

EI: juntando mensajes.

¡Perfecto! ¡Funciona! ¡Muchísimas gracias!  B)

En clases.h:


--- Código: C++ ---#define CLASES_H En cada .cpp


--- Código: C++ ---//Para evitar redefiniciones#ifndef CLASES_H#include "clases.h"#endif 
 :good:  :good:

Eternal Idol:
Normalmente se pone esa condicion unicamente en las cabeceras, como te dijo punteroNULO, asi desde los modulos se sigue incluyendo directamente como siempre.

m0skit0:
Ok, ya lo he corregido.

Gracias a ambos.

Navegación

[0] Índice de Mensajes

Ir a la versión completa