• Viernes 26 de Abril de 2024, 18:40

Autor Tema:  Error "Definición múltiple de función"  (Leído 4740 veces)

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Error "Definición múltiple de función"
« en: Jueves 2 de Abril de 2009, 16:31 »
0
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:
El mensaje contiene 2 archivos adjuntos. Debes ingresar o registrarte para poder verlos y descargarlos.

punteroNULO

  • Miembro activo
  • **
  • Mensajes: 73
    • Ver Perfil
Re: Error "Definición múltiple de función"
« Respuesta #1 en: Jueves 2 de Abril de 2009, 19:22 »
0
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++
  1.  
  2. #ifndef clases_H
  3. #define clases_H
  4.  
  5. // contenido de la cabecera
  6.  
  7. #endif
  8.  
  9.  

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

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error "Definición múltiple de función"
« Respuesta #2 en: Viernes 3 de Abril de 2009, 09:26 »
0
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++
  1. #define CLASES_H
  2.  
En cada .cpp

Código: C++
  1. //Para evitar redefiniciones
  2. #ifndef CLASES_H
  3. #include "clases.h"
  4. #endif
  5.  

 :good:  :good:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error "Definición múltiple de función"
« Respuesta #3 en: Viernes 3 de Abril de 2009, 09:53 »
0
Normalmente se pone esa condicion unicamente en las cabeceras, como te dijo punteroNULO, asi desde los modulos se sigue incluyendo directamente como siempre.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error "Definición múltiple de función"
« Respuesta #4 en: Viernes 3 de Abril de 2009, 09:57 »
0
Ok, ya lo he corregido.

Gracias a ambos.