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
Ir a la versión completa